我是CodeIgniter的初学者,仍然很难完全掌握如何最干净地使用MVC思想。初学者CodeIgniter概念 - 可重用的视图代码,要去哪里? (Helper?)
我正在写一个基本的CMS系统,能够对条目进行投票并跟随其他人等等,因此,我发现我自己在多个视图中使用相同或相似的代码片断,其中包含各种HTML和逻辑如:
- 投票面板
- 跟踪/停止追随面板
- 登录/注销面板
- 代码检查,如果用户在登录等...
我想知道在哪里把这个代码,所以它可以统一?我想助手是要走的路? 如果我在控制器中声明助手,它可以从相应的视图调用吗?
某些元素是动态的 - 例如跟随/取消关注按钮 - 它需要检查您是否已经跟踪用户并显示相应的按钮,这需要模型检查。我现在拥有的是所有的逻辑都在控制器中,并且它返回一个合适的按钮,但在控制器返回中返回形成的html代码似乎很奇怪。它应该是更象:
- 控制器检查,如果你正在关注的人
- 控制器传递一个布尔值到视图
- 视图调用具有此值的助手绘制相应的按钮
另外,作为第二个问题,我一直在循环遍历foreach循环中的mysql数组,以处理从视图返回的mysql结果。似乎我的观点有些复杂,但我想不出另一种方式去做,但也许这应该在另一个帮手中完成呢?
道歉,如果这是一个天真或重复的问题,围绕这个问题确实有很多讨论,但它并不总是容易相关的另一个项目。
感谢您到目前为止的答案 - 我正在做模型中的所有DB提取,但我在视图中做了相当多的逻辑。例如。我让控制器在结果中加载*条目*,然后将每个*条目的所有*票*加载到另一个结果中。然后,该视图有一个嵌套的foreach循环来显示每个条目,然后显示该条目的相应投票,这是'好吗'还是应该以另一种方式接近它? @ thrice801 - 我只是想知道为什么这个用户提到在视图中加载助手不是首选 - http://stackoverflow.com/questions/804399/codeigniter-create-new-helper – waffl 2011-03-22 01:08:45