冰辉 发表于 2018-10-10 18:03:37

CI4在控制器里面的构造函数报错

本帖最后由 冰辉 于 2018-10-10 18:08 编辑

CI没有core目录了,要验证用户登陆,因此想在构造函数里面写;

根据手册,在控制器内加了构造函数,报错误了:

      public function __construct()
      {
                parent::__construct();

                // Your own constructor code
      }




还没有弄懂怎么调到开发环境,在log看了错误日志:
CRITICAL - 2018-10-10 18:00:04 --> Cannot call constructor
#0 D:\CodeIgniter\system\CodeIgniter.php(782): App\Controllers\Home->__construct()
#1 D:\CodeIgniter\system\CodeIgniter.php(300): CodeIgniter\CodeIgniter->createController()
#2 D:\CodeIgniter\system\CodeIgniter.php(220): CodeIgniter\CodeIgniter->handleRequest(NULL, Object(Config\Cache), false)
#3 D:\CodeIgniter\public\index.php(37): CodeIgniter\CodeIgniter->run()
#4 {main}

改为下面就可以了。

      public function __construct()
      {
                // parent::__construct();

                // Your own constructor code
      }




冰辉 发表于 2018-10-10 18:09:07

去掉 parent::__construct(); 是不是继承不到原来的构造函数了?

Hex 发表于 2018-10-10 18:43:25

我看了一下,最新的官方手册没有构造函数这个章节了,CI4 的中文手册有点过时,请参考官方手册 https://bcit-ci.github.io/CodeIgniter4/incoming/controllers.html

冰辉 发表于 2018-10-11 08:43:16

是的,没有了。我看英语版手册了。

梦想杀死 发表于 2018-10-17 09:04:47

改用过滤器吧 》》》https://bcit-ci.github.io/CodeIgniter4/incoming/filters.html

连普科技 发表于 2018-10-17 14:18:54

不是这样的吗?
public function __construct(...$params)
    {
      parent::__construct(...$params);
}
页: [1]
查看完整版本: CI4在控制器里面的构造函数报错