将数据从控制器发送到视图或在视图中包含逻辑?

发布于 2024-11-17 06:15:24 字数 504 浏览 0 评论 0原文

我有一个网页,我试图根据正在浏览的页面的类别创建一个上下文菜单。如果类别位于 animals 上,则基于分段的 url 将包含 animal,即。 http://www.mywebbie.com/livingthings/display/category/animals

要构建上下文菜单,我需要访问包含 subcat_idsubcat_namecat_id 列的数据库表 subcategory并选择 cat_idanimals 对应的所有行。

我应该从控制器访问数据库(通过模型方法),然后将包含子类别名称的数组传递给视图吗?或者一切都应该在视图中完成,其中有加载返回子类别数组的模型方法的代码?

顺便说一句,我正在使用 PHP 框架 Codeigniter。

I have a webpage where I am trying to create a contextual menu depending on the category of the page being browsed. If the category is on animals, the segment based url will contain animal, ie. http://www.mywebbie.com/livingthings/display/category/animals.

To build the contextual menu, I will need to access my database table subcategory with columns subcat_id, subcat_name, cat_id and select all rows with cat_id corresponding to that of animals.

Should I access the database (via the model method) from the controller, then pass the array containing the subcategory names to the view? Or should everything be done within the view, where there is code that loads the model method that returns an array of subcatergories?

Btw, I'm using PHP framework Codeigniter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

极致的悲 2024-11-24 06:15:24

是的,控制器负责与模型通信并处理数据,视图负责呈现数据。

以最简单的形式(假设是一个简单的数组)将数据提供给控制器中的视图。

Yes, The controller takes care of communicating with the model and handling the data, the view takes care of presenting the data.

Make the data available to the view from the controller, in the most simple form, lets say a simple array.

他是夢罘是命 2024-11-24 06:15:24

不熟悉 CI,但如果您有某种 ActiveRecord 或 ORM,请向类别(?)实体添加 getAllSubCats() 方法,并在循环类别时调用它。

如果上述内容没有意义:视图甚至不应该知道数据库存在,因此要回答您的问题,请在控制器中执行此操作。或者更好的是,在模型中进行获取并将结果传递回控制器。

Not familliar with CI, but if you have some kind of ActiveRecord or ORM, then add a getAllSubCats() method to the category(?) entity and call it when you loop through categories.

If the above doesn't make sense: View shouldn't even know a database exists, so to answer your question, do it in the Controller. Or better yet, do the fetching in the Model and pass the results back into the Controller.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文