codeigniter 4 未定义 属性:App\Controllers\Test::$load

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

我要切换到 Condeigniter 4。 尝试做一些基本的事情。 我无法将模型加载到控制器功能中。

控制器Test.php:

<?php

namespace App\Controllers;

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

型号User_model.php

<?

namespace App\Models;

use CodeIgniter\Model;

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

我收到错误:未定义 属性:App\Controllers\Test::$load

我做错了什么?

Codeigniter 4 和 3 加载模型的方式不同。在 codeigniter 4 中你可以使用


use CodeIgniter\Model\User_model;

$modelUser = new \App\Models\User_model();

$userModel = model(User_model::class);

或者您可以在 Codeignter 4 用户指南中看到,Accessing Models

模型加载方法已更改为 Codeigniter 4。您在代码中使用的加载模型的方式已被替换。查看图书馆 Models and information about loading the model can be found here Accessing Models.

控制器 - 测试代码

<?php namespace App\Controllers;

class Test extends BaseController
{
    public function index()
    {
        $TestModel = new TestModel;
    
        $this->data['test']   = $TestModel->test(2);
        
        return view('App\Views\test',$this->data);
    }
}

型号 - 测试代码

<?php namespace App\Models;

use CodeIgniter\Model;

class TestModel extends Model
{

    public function test($var = 1)
    {
        return $var;
    }
}

上面的示例代码允许我们在视图中引用 $test 变量,它将显示值 2.