CodeIgniter不喜欢视图中的方法吗?

时间:2008-11-09 07:12:14

标签: php codeigniter

我在玩CodeIgniter;希望将一些旧的,丑陋的PHP转换为更易于维护的框架。但是,我遇到了一个相当令人沮丧的障碍 - 我似乎无法在我的观点中定义方法。任何时候我尝试我得到一个完全空白的页面,当我查看调试日志时,处理似乎在视图加载后停止。我可以在视图中定义方法吗?如果没有,为什么,你会建议什么样的解决方法?

注意:该方法与格式化输出字符串有关。

3 个答案:

答案 0 :(得分:11)

helper中定义您的函数并从控制器加载它们。这样你就可以在其他视图中重用这些函数。

答案 1 :(得分:0)

我不熟悉CodeIgnitor,但它可能会多次包含您的模板。尝试将您的功能包装在支票中:

if (!function_exists('myfunc'))
{
    function myfunc() {}
}

CodeIgnitor可能吞下错误,所以你也可以在你的函数之前尝试刷新缓冲区:

while(ob_end_flush()){}
error_reporting(E_ALL);
ini_set('display_errors', 1);

实际上,你应该让你的字符串格式代码更通用一些。您的模板不是开始添加功能的好地方。你将开始复制代码,它完全没有模板的目的。我建议尝试使用CodeIgnitor的HelpersPlugins

答案 2 :(得分:0)

视图并不意味着调用控制器操作。反转逻辑,在控制器中调用该函数并将其设置为发送到视图的变量。然后,您可以让if语句在视图模板中检查该变量。

如果这对您不起作用,也许您需要帮助:http://codeigniter.com/user_guide/general/helpers.html