以前我使用Codeigniter 3,并使用autoload.php
加载所有助手和库。现在迁移到CI4,我尝试了以下操作:
1.我尝试在BaseController.php
中加载我的帮助文件
1.我也尝试在我的Controller.php
上加载__construct
中的助手。
我有一个库,比如Demo.php和函数check_user_logged()
。当我从函数调用我的get_cookie()
时,它说Call to undefined function App\Libraries\get_cookie()
。
此函数check_user_logged()
在从控制器调用时为:
<?php
use App\Libraries\Demo;
protected $demo;
public function __construct()
{
helper('cookie');
$this->demo = new Demo();
}
public function index()
{
$this->demo->check_user_logged();
}
演示. php
<?php
namespace App\Libraries;
Class Demo
{
public function check_user_logged()
{
print_r(get_cookie('name')); // just for simplicity printing the cookie
}
}
这是在Demo库构造函数中加载cookie助手的唯一方法吗?还是我遗漏了什么?
2条答案
按热度按时间z4iuyo4d1#
我个人更喜欢在需要帮助的特定函数/类***中加载帮助器***。
选项1:
在库的构造函数中加载 cookie 帮助器。
选项2:
在程式库的方法中载入 cookie Helper。
helper函数
get_cookie()
从当前Request
对象中获取cookie,而不是从Response
对象中获取cookie。此函数检查$_COOKIE
数组是否设置了cookie,并立即获取cookie。选项3A:
正在获取当前响应的Cookie集合中的Cookie。
选项3B:
使用
cookies(...)
全局函数。无需加载任何助手。提取
Response
所持有的全域CookieStore
执行严修。ykejflvf2#
在BaseController中加载通用CI4cookie帮助器应该可以工作。
你能把你原来的错误代码贴出来吗?