我正在使用一个表users[id,user_type,...]
用于三个控制器(users, tenants, clients
)
在最后两个模型(租户和客户端)中,我使用$useTable='users'
。
我需要的是一种基于User.user_type
值自动过滤每个模型操作的方法。
含义:tenants
和clients
控制器将执行相同的方法,但它们的模型将为它们执行的每个查询添加一个条件。
(使用简单的find()
查询很简单 - 我只会将其添加为beforeFind()
调用中的条件,但如何才能进行批量删除或批量更新?)
答案 0 :(得分:1)
创建一个扩展AppModel的类,如UserWrapper。
然后你的三个模型应该扩展UserWrapper而不是AppModel。
在UserWrapper中覆盖适当的方法以添加所需的过滤。
您可以使用instanceof
来确定您在UserWrapper类中查看的用户类型,并将所需的user_type条件添加到查询中。然后你调用父方法。
要做到正确可能会很棘手,但它应该起作用并对控制器透明。