2008-11-09 49 views
2

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

注意:该方法必须处理格式化输出字符串。

+0

它是可能的视图来定义功能 - 我已经没有任何问题之前完成它。我需要更多信息来诊断问题。 – 2008-12-08 12:10:09

+0

这是可能的。我知道,这是我为我的观点所做的。 – 2009-03-20 06:30:16

回答

11

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

0

我不熟悉CodeIgnitor,但它可能会多次包含您的模板。尝试在检查包裹你的函数:

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

CodeIgnitor可能是吞咽的错误,所以你也可以尝试立即与函数之前刷新缓冲区:

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

在现实中,虽然,你应该让你的字符串格式化代码更通用一点。你的模板并不是开始添加函数的好地方。你将开始复制代码,并且它完全不符合模板的目的。我建议试验CodeIgnitor的HelpersPlugins

0

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

如果不为你工作,也许一个帮手是你所需要的:http://codeigniter.com/user_guide/general/helpers.html