【问题标题】:codeigniter 4 Undefined property: App\Controllers\Test::$loadcodeigniter 4 未定义属性:App\Controllers\Test::$load
【发布时间】:2021-04-12 13:27:58
【问题描述】:

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

控制器测试.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


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      模型加载方法已更改为 Codeigniter 4。加载您在代码中使用的模型的方式已被替换。查看库Models,有关加载模型的信息可以在这里找到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

      【讨论】:

        猜你喜欢
        • 2021-01-30
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 2021-07-21
        • 2021-02-18
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多