Search code examples
codeigniter-4

codeigniter 4 Undefined property: App\Controllers\Test::$load


I'm switching to Condeigniter 4. Trying to do some basic stuff. I can't load the model into controller function.

Controller Test.php:

<?php

namespace App\Controllers;

class Test extends BaseController
{
    public function index()
    {
        $this->load->model('user_model');
    }
}

Model User_model.php

<?

namespace App\Models;

use CodeIgniter\Model;

class User_model extends Model
{
    public function get_user_info($user_id) 
    {
        return 1;
    }
}

I'm getting error: Undefined property: App\Controllers\Test::$load

What am I doing wrong?


Solution

  • Codeigniter 4 and 3 have different way to load model. In codeigniter 4 you can use

    
    use CodeIgniter\Model\User_model;
    
    $modelUser = new \App\Models\User_model();
    
    

    or

    $userModel = model(User_model::class);
    

    or you can see in Codeignter 4 User Guide, Accessing Models