我正在玩CodeIgniter;希望將我的一些舊的,醜陋的PHP轉換成更易維護的框架。然而,我遇到了一個相當令人沮喪的障礙 - 我似乎無法在我的觀點中定義方法。任何時候,我都會得到一個完全空白的頁面,當我查看調試日誌時,處理在加載視圖後似乎停止。我可以在視圖中定義方法嗎?如果沒有,爲什麼,以及你會建議什麼解決方法?CodeIgniter不喜歡視圖中的方法?
注意:該方法必須處理格式化輸出字符串。
我正在玩CodeIgniter;希望將我的一些舊的,醜陋的PHP轉換成更易維護的框架。然而,我遇到了一個相當令人沮喪的障礙 - 我似乎無法在我的觀點中定義方法。任何時候,我都會得到一個完全空白的頁面,當我查看調試日誌時,處理在加載視圖後似乎停止。我可以在視圖中定義方法嗎?如果沒有,爲什麼,以及你會建議什麼解決方法?CodeIgniter不喜歡視圖中的方法?
注意:該方法必須處理格式化輸出字符串。
在helper中定義你的功能,並從控制器加載它們。這樣你也可以在其他視圖中重用這些函數。
我不熟悉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
它是可能的視圖來定義功能 - 我已經沒有任何問題之前完成它。我需要更多信息來診斷問題。 – 2008-12-08 12:10:09
這是可能的。我知道,這是我爲我的觀點所做的。 – 2009-03-20 06:30:16