2012-10-24 54 views
0

我對Codeigniter以及MVC相當陌生,而且我很難找出實現這一目標的最佳方法。處理Site-Codeigniter的子部分

我需要建立一個應用程序,允許用戶應用於某些機構提供的各種程序。但是,這些機構都必須在應用程序中擁有一席之地,但他們希望彼此獨立,而不是爲所有程序共享一個應用程序頁面。例如,機構1希望網站的一部分僅查看並應用到他們的計劃中,而機構2希望網站的一部分僅適用於他們的計劃。

完成此操作的最佳方法是什麼?我應該爲每個機構創建一個單獨的控制器嗎?

E.g. sitename.com/inst1/apply, sitename.com/inst2/apply

雖然這些控制器中的每一個都基本上與創建/讀取/更新/等功能相同。這種情況下的最佳實踐是什麼?謝謝!

回答

1

您可以創建文件夾來正確提供您的功能。這被廣泛用於API。

例如。你可以有這樣的文件夾結構。

- application/ 
    - controllers/ 
     - inst1/ 
      apply.php 
     - inst2/ 
      apply.php 

有了這個,您將擁有類似的URL端點。

index.php/inst1/apply 
index.php/inst2/apply 
0

我認爲你是對的,你會爲每個機構創建控制器,允許你改變你爲每個機構提供的數據。這些視圖可以共享,因爲所有的功能都在控制器/模型中,這是MVC最重要的方面之一,能夠將這些圖層分開,並在需要的地方重複使用,而不會重複。如果您將頁面設置爲模板,則甚至可以使用不同的模板將視圖提供給機構特定的視圖。

0

爲此,您可能需要使用相同的控制器,並通過將函數傳遞給另一個不同的uri段來處理變化,您可以閱讀關於here 的不同uri段。在我的codeigniter應用程序中,我喜歡在每個控制器或模型中保留特定的功能。因此,它可能看起來像:

sitename.com/my_controller/my_function/my_argument 

凡在你的控制器功能看起來像:

public function my_function($argument){ 
//stuff goes here 
} 

當然你也可以用你的,使URL看起來,但是你會喜歡。

0

只是建立一個單一的控制器,並進行了標誌到不同的他們。在查看文件中,您可以檢查此標誌以決定天氣顯示節目並應用與否。

網址將是這樣的:

sitename.com/inst/1/apply, sitename.com/inst/2/apply 

注意:您還可以改變文字鏈接的數量;以更好地seo