【发布时间】:2011-07-19 21:36:54
【问题描述】:
我是 CodeIgniter 的初学者,仍在努力完全掌握如何最干净地使用 MVC 意识形态。
我正在编写一个基本的 CMS 系统,该系统能够对条目进行投票和关注他人等,因此,我发现自己在多个视图中使用相同或相似的代码片段,其中包括各种 html 和逻辑片段如:
- 投票小组
- 关注/取消关注面板
- 登录/注销面板
- 检查用户是否登录等的代码...
我想知道将这段代码放在哪里以便统一?我在想一个帮手是要走的路吗? 如果我在controller中声明了helper,就可以从对应的view调用吧?
一些元素是动态的 - 例如关注/取消关注按钮 - 它需要检查您是否已经关注用户并显示适当的按钮,这需要模型进行检查。我现在拥有的是所有逻辑都在控制器中,它返回一个适当的按钮,但是在控制器返回中返回形成的 html 代码似乎很奇怪。应该更像:
- 控制器检查您是否在关注某人
- 控制器将布尔值传递给视图
- 视图调用具有此值的助手来绘制相应的按钮
另外,作为第二个问题,我已经在 foreach 循环中对 mysql 数组进行了相当多的循环,以处理从视图返回的 mysql 结果。似乎我的观点变得有些复杂,但我想不出另一种方法来做到这一点,尽管也许这也应该在另一个助手中完成?
抱歉,如果这是一个幼稚或重复的问题,确实有很多围绕这个主题的讨论,但它并不总是容易与另一个项目相关。
【问题讨论】:
-
感谢到目前为止的答案 - 我正在执行模型中的所有数据库获取,但正在视图中执行相当多的逻辑。例如。我让控制器将 entry 加载到结果中,然后将每个 entry 的所有 votes 加载到另一个结果中。然后视图有一个嵌套的 foreach 循环来显示每个条目,然后显示该条目的相应投票,这是“好的”还是我应该以另一种方式接近它? @thrice801 - 我只是想知道为什么这个用户提到在视图中加载帮助器不是首选 - stackoverflow.com/questions/804399/…
标签: php mysql codeigniter application-structure