我是CodeIgniter的初學者,仍然很難完全掌握如何最乾淨地使用MVC思想。初學者CodeIgniter概念 - 可重用的視圖代碼,要去哪裏? (Helper?)
我正在寫一個基本的CMS系統,能夠對條目進行投票並跟隨其他人等等,因此,我發現我自己在多個視圖中使用相同或相似的代碼片斷,其中包含各種HTML和邏輯如:
- 投票面板
- 跟蹤/停止追隨面板
- 登錄/註銷面板
- 代碼檢查,如果用戶在登錄等...
我想知道在哪裏把這個代碼,所以它可以統一?我想助手是要走的路? 如果我在控制器中聲明助手,它可以從相應的視圖調用嗎?
某些元素是動態的 - 例如跟隨/取消關注按鈕 - 它需要檢查您是否已經跟蹤用戶並顯示相應的按鈕,這需要模型檢查。我現在擁有的是所有的邏輯都在控制器中,並且它返回一個合適的按鈕,但在控制器返回中返回形成的html代碼似乎很奇怪。它應該是更象:
- 控制器檢查,如果你正在關注的人
- 控制器傳遞一個布爾值到視圖
- 視圖調用具有此值的助手繪製相應的按鈕
另外,作爲第二個問題,我一直在循環遍歷foreach循環中的mysql數組,以處理從視圖返回的mysql結果。似乎我的觀點有些複雜,但我想不出另一種方式去做,但也許這應該在另一個幫手中完成呢?
道歉,如果這是一個天真或重複的問題,圍繞這個問題確實有很多討論,但它並不總是容易相關的另一個項目。
感謝您到目前爲止的答案 - 我正在做模型中的所有DB提取,但我在視圖中做了相當多的邏輯。例如。我讓控制器在結果中加載*條目*,然後將每個*條目的所有*票*加載到另一個結果中。然後,該視圖有一個嵌套的foreach循環來顯示每個條目,然後顯示該條目的相應投票,這是'好嗎'還是應該以另一種方式接近它? @ thrice801 - 我只是想知道爲什麼這個用戶提到在視圖中加載助手不是首選 - http://stackoverflow.com/questions/804399/codeigniter-create-new-helper – waffl 2011-03-22 01:08:45