我在玩 CodeIgniter;希望将我的一些旧的、丑陋的 PHP 转换成一个更易于维护的框架。然而,我遇到了一个相当令人沮丧的障碍——我似乎无法在我的视图中定义方法。每当我尝试时,我都会得到一个完全空白的页面,当我查看调试日志时,处理似乎在视图加载后停止。我可以在视图中定义方法吗?如果不是,为什么,你会建议什么解决方法?
注意:该方法与格式化输出字符串有关。
我在玩 CodeIgniter;希望将我的一些旧的、丑陋的 PHP 转换成一个更易于维护的框架。然而,我遇到了一个相当令人沮丧的障碍——我似乎无法在我的视图中定义方法。每当我尝试时,我都会得到一个完全空白的页面,当我查看调试日志时,处理似乎在视图加载后停止。我可以在视图中定义方法吗?如果不是,为什么,你会建议什么解决方法?
注意:该方法与格式化输出字符串有关。
在帮助程序中定义您的函数并从控制器加载它们。这样,您也可以在其他视图中重用这些功能。
我不熟悉 CodeIgnitor,但它可能会多次包含您的模板。尝试将您的功能包装在支票中:
if (!function_exists('myfunc'))
{
function myfunc() {}
}
CodeIgnitor 可能正在吞噬错误,因此您也可以尝试在函数之前立即刷新缓冲区:
while(ob_end_flush()){}
error_reporting(E_ALL);
ini_set('display_errors', 1);
但实际上,您可能应该使您的字符串格式化代码更通用一些。您的模板并不是开始添加功能的好地方。您将开始复制代码,这完全违背了拥有模板的目的。我建议尝试使用 CodeIgnitor 的Helpers和Plugins
视图并不意味着调用控制器动作。反转您的逻辑,在控制器中调用该函数并将其设置为您发送到视图的变量。然后你可以让 if 语句在你的视图模板中检查那个变量。
如果这对您不起作用,也许您需要一个助手: http: //codeigniter.com/user_guide/general/helpers.html