CI 4 What are Models?

CodeIgniter 4 Models are those files or functions which interact with application’s database.

Any operations which involves database includes the concept of models. For example – Selecting data, Inserting rows, Updating value, etc.

Models in CodeIgniter 4 are created inside /app/Models.

Every model file extends Model class from CodeIgniter\Model.

Syntax of spark command to create a model

$ php spark make:model <ModelName> <Options>

Example –

$ php spark make:model Student --suffix

It will create a file with name StudentModel.php at /app/Models folder. –suffix flag used to attach Model suffix with the model’s name.

<?php

namespace App\Models;

use CodeIgniter\Model;

class StudentModel extends Model
{
	protected $DBGroup              = 'default';
	protected $table                = 'students';
	protected $primaryKey           = 'id';
	protected $useAutoIncrement     = true;
	protected $insertID             = 0;
	protected $returnType           = 'array';
	protected $useSoftDelete        = false;
	protected $protectFields        = true;
	protected $allowedFields        = [];

	// Dates
	protected $useTimestamps        = false;
	protected $dateFormat           = 'datetime';
	protected $createdField         = 'created_at';
	protected $updatedField         = 'updated_at';
	protected $deletedField         = 'deleted_at';

	// Validation
	protected $validationRules      = [];
	protected $validationMessages   = [];
	protected $skipValidation       = false;
	protected $cleanValidationRules = true;

	// Callbacks
	protected $allowCallbacks       = true;
	protected $beforeInsert         = [];
	protected $afterInsert          = [];
	protected $beforeUpdate         = [];
	protected $afterUpdate          = [];
	protected $beforeFind           = [];
	protected $afterFind            = [];
	protected $beforeDelete         = [];
	protected $afterDelete          = [];
}
  • $DBGroup – Specify database group name. We can create two or more database groups when we work with more than 1 database.
  • $table – Specify associated table name.
  • $primaryKey – Primary key for table
  • $allowedFields – This field contains the number of columns of table for mass assignment.

To use models in CodeIgniter 4 application, first we need to create an instance of that. Here is the way to create.

# Load model

use App\Models\StudentModel;

# Creating model instance

$object = new StudentModel();

Example –

$ php spark make:controller User --suffix

It will create UserController.php file inside /app/Controllers folder.

<?php

namespace App\Controllers;

use App\Controllers\BaseController;
use App\Models\StudentModel;

class UserController extends BaseController
{
    public function index()
    {
        $studentModel = new StudentModel();

        //...
    }
}

We have created $studentModel an instance of StudentModel.

Next, we can call all methods like insert(), update(), delete() using $studentModel.