2011-12-28 174 views
2

我已經開始使用CodeIgniter,我似乎做得很好。儘管我遇到了一個問題。CodeIgniter和控制器

我有一個名爲Articles的控制器。該網站的用戶可以執行以下操作:在類別

    • 找蛞蝓名
    • 文章獲取的文章列表獲取的有X標記名的文章列表

    我的問題是我應該創建3個獨立的控制器:

    • Article.php - 對於單篇
    • Category.php - 對於有X類
    • Tag.php文章列表 - 對於有X標記

    或者,我應該把一切都在Article.php文章列表?

    我只是想弄清楚做事的傳統方式。

  • +0

    因爲所有這三個函數返回的文章,我會選擇堅持只有一個文章控制器。 – bobo 2011-12-28 17:41:14

    回答

    1

    這是給你(當然),但它本身聽起來像你想一個控制器,只要標籤和分類沒啥意思,沒有文章。

    對於語義起見,我將其與「S」重命名爲Articles.php。然後,你將有:

    /articles/category/{$category_id}

    其中, 「類別」 是類/控制器Articles的方法。只記得改變你的控制器類名稱。

    我可能會重命名爲「標記」的「標籤」的方法,類似於堆棧溢出呢,所以URL讓人有點更有意義:

    /articles/tagged/{$tag_slug}

    類似:

    http://stackoverflow.com/questions/tagged/codeigniter

    對於個別文章,創建一個方法叫「觀點」:

    /articles/view/{$article_slug}

    如果「標籤」或「類別」是獨立的實體,也可以不僅僅是文章容納更多的東西,你可能想讓他們各自爲自己的控制者,但在這種情況下,我認爲你不需要。

    +0

    有效的點。如果我是使用多個控制器它們將只包含1種方法無論如何這將是'{類}/{方法}/{段塞}」。我現在可能會堅持一個控制器。只要這樣做是可以接受的。我不僅學習使用CI,還學習使用MVC模式時的常規練習。謝謝你的評論。 – GV1 2011-12-28 17:42:07

    +1

    只記得沒有規則,只有約定 - 那些將因人而異。做什麼適合你,並從經驗中學習。如果你最終只用一種方法使用控制器,看一下CI ['_remap()'](http://codeigniter.com/user_guide/general/controllers.html#remapping)方法或者使用'routes .php'通過'index()'方法路由所有的東西,並保持URL很好,乾淨。 – 2011-12-28 17:44:42

    0

    這真的取決於你如何做到這一點,但我個人把它放在一個控制器,並給它用於顯示數據的不同方法。我也將此視爲更傳統的方式,但仍取決於該項目。

    1

    我個人平時一般用1個控制器,並把它的一切。有人在他們網站的每個頁面都使用一個控制器,以便他們的網站反映得更好。

    如果使用1個控制器的每一頁你就必須像網址

    example.com/blog/article 
    example.com/blog/about 
    example.com/blog/contact 
    

    而如果你使用控制器每個頁面,你可以有這樣的

    example.com/blog 
    example.com/about 
    example.com/contact 
    

    明顯網址每個控制器都有一個索引功能。

    在你的情況,我會用1個控制器與處理標籤/用品/等等不同的功能。