要在控制器或模型中执行的操作?

时间:2012-12-14 11:25:07

标签: php model-view-controller model controller

我有一个项目表,每个项目可以分配给定数量的图像,其中一些是特色图像。其中只有一个必须一次启用。

我在images表中有这些字段: 特色(0或1) 启用(0或1)

遵循MVC架构,我不确定是否应该在控制器或模型中执行以下操作,例如我启用图像(我已经简化了示例,因为它有点复杂):

  1. 检查此图片是否有特色。
  2. 如果有特色,请禁用任何特色图片并启用此图片。
  3. 我可以从模型到控制器获取其状态(特征与否),让控制器命令模型禁用所有特征图像,然后告诉模型启用此模型,或者让模型管理此模型所有内部。

    我的问题出现了,因为据我所知并且我有时读过,控制器被认为是引擎,而模型只是执行控制器命令。

    但是我认为在这种情况下,模型可能是自我依赖的,可以将这些约束作为一个黑盒子来管理,而不需要控制器知道它们。

    您怎么看?

1 个答案:

答案 0 :(得分:1)

我建议您在项目表中增加一个字段。并存储启用图像的ID(可以是特色或启用图像)。

此方法将解决您的两个问题

1.Check if this image is featured.
2.In case it is featured, disable any featured image and enable this one.

每次,只需存储已启用或具有特色功能的图像的ID。因此,您不必在图像表中进行太多更新。