Models, Views and Controllers
What is MVC?
MVC (Model-View-Controller) is a design pattern used in software development, especially for web applications. It separates an application into three main components:
Model – Manages data and business logic.
View – Handles the user interface (UI) and presentation.
Controller – Acts as a bridge between the Model and View, processing user inputs.
How it works?
User requests a page (URL): The request is sent to a Controller.
Controller processes the request: It may interact with a Model to get or update data.
Model handles data: The Model retrieves, updates, or processes data from the database.
Controller passes data to the View: The View formats and displays the data to the user.
User sees the updated page: The final output (HTML, JSON, etc.) is sent to the browser

The Components
Models
Represents data and defines how it is processed.
Communicates with the database.
Does not directly interact with the View.
Functions in BaseModel
__construct()
: Automatically called when an object is instantiated. It is typically used to establish a database connection or initialize important class properties.
_schema()
: Defines the structure of the database table by specifying columns and their data types.
_table()
: Returns the name of the database table that the model corresponds to, making queries more flexible and maintainable.
_columns()
: Specifies the list of columns that can accept data during insert or update operations.
row()
: Fetches a single record from the specified table based on the given search conditions.
list()
: Fetches multiple records from the table based on specified conditions, with options for sorting and limiting the number of returned records.
listpaging()
: Fetches paginated data, allowing large datasets to be divided into manageable pages for better control and display.
listfieldpaging()
: Obtains data from specific table columns with pagination support, optimizing query performance and data display.
add()
: Inserts a new record into the specified table with the provided data, ensuring validation before storage.
set()
: Updates one or more records in the table based on specified conditions, ensuring that only valid fields are modified.
del()
: Deletes one or more records from the table based on the provided conditions.
query()
: Executes a custom SQL query with provided parameters, allowing for extended query capabilities beyond the default CRUD operations.
lastInsertId()
: Gets the ID of the most recently inserted record in the table.
count()
: Counts the number of records in the specified table based on given conditions.
Explore more about Models
Views
Displays the data provided by the Controller.
Contains HTML, CSS, JavaScript, and minimal PHP.
Should not contain business logic.
Explore more about Views & Templates
Controllers
Processes user input and interacts with the Model.
Sends the processed data to the View.
Acts as the middleman between Model and View.
Functions in BaseController
data()
: Stores and retrieves internal class data. It is used to temporarily store information for use in other methods.render()
: Displays content using a predefined layout. This method is useful for managing webpage rendering in an MVC framework.json()
: Returns data in JSON format. It is commonly used to provide data for APIs or AJAX requests.success()
: Returns a JSON response for successful operations. This is typically used for API responses when a request is successfully completed.error()
: Returns a JSON response for errors. It helps send API error responses when an issue occurs in the system.get_success()
: Returns a success response as an array. This method is useful for processing API responses internally before sending them to the client.get_error()
: Returns an error response as an array. It is used to check errors during processing before sending a response.
Explore more about Controllers
Last updated
Was this helpful?