我使用一个表users[id,user_type,...]作为三个控制器(users, tenants, clients)
在最后两个模型(租户和客户端)中,我使用$useTable='users'。
我需要的是一种基于User.user_type值自动过滤每个模型操作的方法。
含义:tenants和clients控制器将执行相同的方法,但它们的模型将为它们执行的每个查询添加一个条件。
(对于简单的find()查询,它很简单--我将在beforeFind()调用中添加它作为一个条件,但是如何实现大规模删除或大规模更新?)
发布于 2014-01-28 19:22:58
创建一个像AppModel一样扩展UserWrapper的类。
然后,您的三个模型应该扩展UserWrapper而不是AppModel。
在UserWrapper中,覆盖适当的方法来添加所需的筛选。
您可以使用instanceof从UserWrapper类中确定正在查看的用户类型,并将所需的user_type条件添加到查询中。然后调用父方法。
它可能是棘手的,但它是正确的,但它应该工作和透明的控制器。
https://stackoverflow.com/questions/21279562
复制相似问题