应该在模型或控制器中获取相关行吗?

时间:2011-05-28 19:20:09

标签: php model-view-controller zend-framework zend-db

让我先从一个简单的例子开始,展示我的数据是如何构建的。共有四个表格EmployeeStoreDepartmentEmployee_Department_Permissions

部门属于商店(例如,部门表可能包含商店5的乳品部门的记录)。员工有权通过Employee_Department_Permissions表在Departments中工作,该表包含Employee id和Department id。

假设员工可以登录我的应用程序并查看数据库中每个商店的列表。在每家商店旁边,我想打印出他们可以在每家商店工作的部门。我有一个带有映射器的Employee模型,它提供fetchAll方法来完成第一部分。

但是,我应该在哪里找出员工可以工作的部门数量?在我的模型包装器中,我可以调用findDependentRows来执行此操作。或者,我可以使用原始Zend_Db_Select调用在我的控制器中执行此操作。我正在考虑的第三个选项只是添加一个包含此信息的Employee表的列,但是当Employee_Department_Permission被修改时我需要更新第二个表。

提前感谢您的任何建议。

1 个答案:

答案 0 :(得分:3)

作为一般的经验法则,我建议您尽量保持控制器尽可能免费获取视图的信息。这是模型中最好处理的任务。

当然,从控制器中取出很容易,我的意思是,因为我们在那里处理请求,所以只需快速获取并将其推送到视图即可。 这是dicipline发挥作用的地方。随着您的应用程序的增长,您将欣赏这种方法为您提供(如果应用)的清晰分离。

我的2美分,快乐的编码给你的朋友。