用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2127|回复: 5
收起左侧

[版本 4.x] CI4在控制器里面的构造函数报错

[复制链接]
发表于 2018-10-10 18:03:37 | 显示全部楼层 |阅读模式
本帖最后由 冰辉 于 2018-10-10 18:08 编辑

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

根据手册,在控制器内加了构造函数,报错误了:
PHP复制代码
 
        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}

改为下面就可以了。
PHP复制代码
 
        public function __construct()
        {
                // parent::__construct();
 
                // Your own constructor code
        }
 
 
复制代码



 楼主| 发表于 2018-10-10 18:09:07 | 显示全部楼层
去掉 parent::__construct(); 是不是继承不到原来的构造函数了?
发表于 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 | 显示全部楼层
发表于 2018-10-17 14:18:54 | 显示全部楼层
不是这样的吗?
public function __construct(...$params)
    {
        parent::__construct(...$params);
}

本版积分规则