我开始使用CodeIgniter,我似乎做得很好。我遇到了一个问题。
我有一个叫做文章的控制器。该网站的用户可以执行以下操作:
我的问题是我应该创建3个独立的控制器:
Article.php
- 单篇文章Category.php
- 有关x类别的文章列表Tag.php
- 有关x标签的文章列表或者,我应该将所有内容放在Article.php
吗?
我只想弄清楚传统的做事方式。
答案 0 :(得分:1)
这取决于你(当然),但听起来你想要一个控制器,只要标签和类别本身没有任何意义,没有文章。
出于语义考虑,我会用“s”将其重命名为Articles.php
。然后你会有:
/articles/category/{$category_id}
其中“category”是类/控制器Articles
的方法。请记住也要更改控制器类名称。
我可能会将“tags”方法重命名为“tagged”,类似于Stack Overflow所做的,所以url更有意义:
/articles/tagged/{$tag_slug}
类似于:
http://stackoverflow.com/questions/tagged/codeigniter
对于单篇文章,创建一个名为“view”的方法:
/articles/view/{$article_slug}
如果“标签”或“类别”是独立的实体,或者可以容纳更多的东西,而不仅仅是文章,你可能想让它们各自成为自己的控制器,但在这种情况下,我认为你不需要。
答案 1 :(得分: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个具有不同功能的控制器来处理标签/文章/等。
答案 2 :(得分:0)
这取决于你如何做,但我个人会把它放在一个控制器中,并给它不同的方法来显示数据。我也认为这是一种更传统的方式,但它仍然取决于项目。