2011-10-14 73 views
1

我是MVC,CodeIginter的新手。它不需要讓事情變得簡單,而是需要爲簡單的應用程序編寫大量的代碼。這些可能會發生,因爲我是新的。所以我對這件事很少有混淆。任何形式的幫助表示讚賞。
1)方法都寫在一個控制器中,不能在另一個控制器類中訪問。我必須爲相同的功能編寫一個新功能。Codeigniter內部控制器通信

2)要在無mvc面板中創建網站管理面板(後端),我們通常在一個新文件夾中創建它。這是CodeIgniter中的可能嗎?如果不是管理員(後端)怎麼樣?

回答

1

讓我們試着澄清一些你對此的疑惑。

1)從另一個控制器調用控制器的方法是不可能的,順便說一句,

控制器應該從URL(由CI路由到任務的右側控制器)獲取一個動作,並據此決定調用哪個模型和需要調用哪個模型的方法來詳細說明所請求的數據。

然後,該模型將該詳細說明的結果回傳給控制器,控制器依次決定向哪個視圖傳遞此結果。

該視圖最終被構造爲獲取這些數據並顯示它們。如你所見,從另一個控制器調用一個控制器的方法是無稽之談,它就像是轉到一個頁面並找到另一個控制器的方法;如果你想傳遞給另一個控制器請求...那麼,有重定向。

如果你發現你有幾個時刻相同的功能,三思而後行:

  1. 什麼是的funcionality?你的意思是控制器「新聞」中的控制器「檔案」和「顯示帖子」中的「顯示帖子」?他們幾乎沒有相同的功能;他們可以分享觀點或模型,但就是這樣。
  2. 對於不涉及URL的函數,但涉及一些進一步的細節(這可能是在模型中做的錯誤)並且仍然在控制器中調用,您可以改爲使用庫。在「form_validation」庫中考慮一下,它在控制器的方法中被調用,但是有它自己特有的(和封裝的)功能。ORA一個「會話」庫,或「認證」庫

2)創建管理面板中的最簡單的事情是:創建一個「管理員」控制器(它是入店然後www.mysite.com/index .php/admin),並將其中的所有管理操作置於其方法中:create_page(),edit_page(),manage_users(),無論如何。 爲了避免人訪問它的自由,你需要建立一個認證系統,即在其最簡單和barabone strucutre,可能是wheter會話設置與否的檢查(可能在__construct做了檢查()的時間)。

但你可以找到很好的驗證庫,在那裏已經作出,如離子驗證或驗證坦克(2個最流行的據我所知)

希望事情更清楚一點了。如果您對模塊化HMVC方法感興趣,請參閱Interstellar_Coder對此答案的評論。

+0

實際上,使用新的HMVC模式,理論上可以從一個控制器調用另一個控制器方法。這似乎是一個不斷增長的趨勢,並有助於進一步單獨的代碼,在內部該請求被模仿,並返回從視圖中的輸出,並且可以在一起選擇用於爲電流控制器的視圖。雖然在這種特殊情況下我不認爲OP需要使用這種方法。 –

+0

@Interstellar_Coder我知道,但我認爲OP還缺一些基礎知識,所以我想提的HMVC(這是不是在本地笨,還)將是一步還是沒有必要,而且會產生更多的混亂。不過,非常感謝。 –

+0

謝謝你們兩位好友....謝謝 –

1

1)方法是寫在一個控制器中,不能在另一個控制器類中訪問。我必須爲相同的功能編寫一個新功能。

什麼是功能?也許你應該寫一個庫/幫手,控制器的邏輯應該限於請求流或其他東西,但不要太複雜。爲此,請將功能放入模型中,或者如果更通用,則放入庫/幫助程序中。

2)要在無mvc面板中創建網站管理面板(後端),我們通常在一個新文件夾中創建它。這是CodeIgniter中的可能嗎?如果不是管理員(後端)怎麼樣?

我不明白,你能詳細解釋一下嗎?

+0

感謝您的答覆。 的管理控制檯是指其中的內容等通過訪問數據庫等 例如我的網站是修改網站的部分「mysite.com」和amdin面板「mysite.com/admin」 –

+0

出現這種情況,幾乎所有的時間,它應該由其他控制器處理,就像其他控制器一樣。哪一部分讓你感到困惑? – LeleDumbo