无法获得codeigniter挂钩工作

时间:2013-05-02 03:22:58

标签: codeigniter hook

我现在花了几个小时,试图找出为什么我不能在codeigniter中使用简单的钩子。

我在配置中启用了挂钩。 我快速拼写拼写和案例。

我在config / hooks.php中编写了以下代码:

$hook['pre_controller'] = array(
'class'    => '',
'function' => 'set_previous_page',
'filename' => 'previous_page',
'filepath' => 'hooks'
);

然后我的previous_page.php文件位于hooks文件夹中:

function set_previous_page()
{
    echo "Hi!"; die;
}

显然目的不是回应嗨!然后停止脚本执行,但它只是让它工作。我确实尝试了几个钩点。但pre_controller我应该能够输出hi并杀死脚本,然后将hi作为唯一的输出。

但是当我加载我的页面时,它只是正常加载。

我故意尝试,搞乱了钩子数组中的语法,它确实给了我一个错误,并且没有加载页面的其余部分。这只是告诉我,至少它确实认识到我已经转向了。

但是从这里开始我就输了。不知道该怎么办?

你有什么想法吗?我现在试着在它上面睡觉,并希望这里有一些聪明的家伙有答案!谢谢你提前!

编辑:顺便说一句,我正在使用MX(模块化扩展),phil sturgeons模板库和Ion auth。不要以为他们应该有影响力。

2 个答案:

答案 0 :(得分:1)

您的代码与手册中的代码不同。你看过了吗?

http://www.codeigniter.com/user_guide/general/hooks.html

我刚在本地尝试过,它运行正常。

应用/配置/ hooks.php:

$hook['pre_controller'] = array(
   'class' => '',
   'function' => 'Myfunction',
   'filename' => 'Myclass.php',
   'filepath' => 'hooks',
   'params' => ''
);

应用/钩/ Myclass.php:

<?php

function Myfunction(){

    echo "wut wut";
    die;
}

通过这一切,我访问该页面并获得wut wut

您错过了文件名中的php扩展名,但如果其他所有内容都正常,则会抛出unexpected end of input个异常。

答案 1 :(得分:0)

这可能是很晚的响应,以防万一有人使用CI 3.x遇到与我相同的此类问题。只需在将条目放入config / hooks.php

之前,先在config / config.php文件$config['enable_hooks'] = TRUE;中启用钩子即可。