繁体   English   中英

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

[英]Actions to be performed in controller or in model?

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

我在图像表中具有以下字段:启用(0或1)精选(0或1)

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

  1. 检查此图片是否具有特色。
  2. 如果有精选图片,请禁用任何精选图片并启用该图片。

我可以从模型到控制器获取其状态(有无特征),然后让控制器命令模型禁用所有特征图像,然后告诉模型启用此功能,或者让模型在内部进行全部管理。

之所以提出我的问题,是因为据我所知,有时我已经读过,据说控制器是引擎,而模型只是执行控制器的命令。

但是,我认为在这种情况下,该模型可能会自动依赖于将这些约束作为黑匣子进行管理,而不需要控制器意识到这些约束。

你怎么看?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM