2008-11-09 110 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