我最近开始重写几年前使用CakePHP做的项目。我这次正试图做一切'正确',所以也许有人会给我一个关于做以下事情的指针:
我在视图中使用Model-> find('all')从表格中显示一个简单的表格。这个表中有两个布尔字段,它们组成了我需要向用户显示的内容。所以:0x0 ='A',1x0 ='B',0x1 ='C',1x1 ='D'。我应该把这个逻辑放在哪里?我一直在考虑以下方法:
这项任务看起来似乎微不足道,但我认为它可以让我从一开始就了解这个项目的组织和维护。
谢谢!
答案 0 :(得分:5)
嗯,这取决于组成决赛桌的逻辑类型(是演示还是商业?)。
想象一下,您添加了新类型的UI,例如命令行界面。你怎么在那里展示你的桌子?对于HTML和控制台演示文稿,传递给View的数据必须相同。因此,负责准备数据的逻辑是业务逻辑,应该放在模型中。负责显示数据的逻辑应放在View中(如果多次使用,可以在视图助手中)。
永远不要在Controller中放置这种逻辑。
答案 1 :(得分:1)
如果你将要在整个地方使用它,我会把它放在模型中。您可以在模型上放置一个方法,将该值返回或循环遍历您在afterFind回调中检索到的所有行,并将其设置为正确的字段。
答案 2 :(得分:0)
如果要确定渲染样式,我会在视图中放置这种逻辑。通过这种方式,设计师可以获得最大的访问权限,并可以相应地进行设计。
另一方面,如果仅为了方便数据模型而存在两列,请将其放在模型中。设计师甚至不应该意识到其他可能性!
答案 3 :(得分:-1)
在控制器中!模型中的方法来自控制器。该视图仅用于输出(如HTML UI编程。)