Introduction SmartAdmin's built-in Database functionalities. Learn more how \Models\Model works.


PHP Models

A library that allows you to easily create and define your models using PDO.


To enable Database functionality, include the init.db.php file in your php script. You can also include this in the main init.php file to initiate your database globally.
Follow the database installation guide if you need help configuring your database.



The \Models\Model class is a parent class that can be inherited to a Model class. Inheriting this class allows you to automatically map the result "row" into your model class (table). This class basically uses the PDO::FETC_INTO style and made it easier for you. Here are the steps to link your table into a class:

Create your model class. For example, a User.php class.

namespace Models;

class User extends Model {
    public function getName() {
        return $this->firstname.' '.$this->lastname;

Register your table to your custom Model class.

// somewhere in your init.db.php

Now, you can directly get the User instance from a query. Example:

$user = \Models\User::query_row("SELECT id, name FROM users WHERE id = 1 AND active = 1");

// You can also do this
// 1 is the id (primary key)
$user = \Models\User::instance(1);

// you can call the get_name() method now
if ($user) {
    $name = $user->getName();
    echo 'His name is '.$name;


To query multiple rows of data, you can provide your own SQL to the query method of the Model. For example:

$users = \Models\User::select("SELECT * FROM users WHERE active = 1");
foreach ($users as $user) {
    $name = $user->getName();
    echo 'User #'.$user->id.' '.$name.'<br>';
Pro tip!
You can pass the $data to the \Bootstrap\Components\Table class to create a table. See PHP Components / Table page for more information.


SmartAdmin uses lodev09/php-models package to connect and CRUD your database. Created by @lodev09.