我正在尝试在我的pre_controller挂钩中加载cookie帮助器,以便在我们的站点上使用"记住我"功能.我认为使用$ ci =&get_instance()创建CI对象的实例; 允许我访问加载助手,但事实并非如此.
思考?
$ci =& get_instance();
$ci->load->helper('cookie');
// does not load
Run Code Online (Sandbox Code Playgroud)
Phi*_*eon 15
post_controller_constructor的问题是它在构造函数之后运行(有趣的是),如果你使用Controller构造函数来处理很多事情,这可能是一个问题.
如果它不是你的问题(你的助手不会影响你的构造函数中运行或加载的任何东西)公平,如果它是一个问题,你有两个解决方案.
创建MY_Controller并添加自定义挂钩点.
class MY_Controller extends Controller
{
function MY_Controller()
{
parent::Controller();
$GLOBALS['EXT']->_call_hook('pre_controller_constructor');
}
}
Run Code Online (Sandbox Code Playgroud)请注意,如果您使用的是CodeIgniter 3.0或更高版本,则该功能_call_hook已重命名为call_hook.
mea*_*gar 12
该pre_controller挂钩执行之前的超级对象已经完全构造,因此get_instance()无法正常工作-静态对象返回到尚未初始化的参考.
考虑使用post_controller_constructor钩子; 你的控制器的构造函数将被执行,CI超级对象将可供使用.