【问题标题】:Create/Include a modell for the whole controller in Codeigniter4在 Codeigniter 4 中为整个控制器创建/包含模型
【发布时间】:2021-02-11 19:54:13
【问题描述】:

我在 CI4 中迈出了第一步。

有没有办法为控制器的每个功能一次定义一个模型到控制器中?

目前我必须像这样为每个函数添加模型

public function myfunction(){
   $myModel = new \App\Models\MyModel();
}
public function myfunction_two(){
   $myModel = new \App\Models\MyModel();
}
...

更新

根据我的回答,我试试这个

class controllertwo extends BaseController
{
    private $myModel;
    public function __construct()
    {
        //Add some Models we need in this controller?
        $this->myModel= new \App\Models\myModel();
        //$this->myModel= new myModel();
    }

...

Codeigniter 错误控制台说“使用未定义的常量 int - 假定为 'int'(这将在 PHP 的未来版本中引发错误)”并标记此行“$this->myModel= new \App\Models\myModel ();"

我做错了什么?或者,在控制器中包含所有功能的模型不是最好的方法吗?

【问题讨论】:

    标签: codeigniter-4


    【解决方案1】:

    您可以在控制器中将其声明为私有变量,如下所示:

    private $model;
    

    然后在构造函数中设置如下:

    public function __construct()
        {
            $this->model = new \App\Models\MyModel();
      }
    

    然后在您的方法中简单地引用它们,如下所示:

    public function myfunction(){
       $this->model ...
    }
    public function myfunction_two(){
        $this->model ...
    }
    

    【讨论】:

    • 我收到此错误:使用未定义的常量 int - 假定为“int”(这将在 PHP 的未来版本中引发错误)
    • 你能更新你的代码以便我帮你吗?
    • 你也可以将错误堆栈添加到问题中吗?我认为这段代码没有问题。
    • 另外,请检查您的型号名称,我不确定型号名称是否区分大小写。
    • 对不起,问题来自“protected $dateFormat = 'int';”模型内部。这产生了错误消息。所以我感谢你的帮助!
    猜你喜欢
    • 2021-08-25
    • 2021-06-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多