我正在寻找非常直观的东西。
有几个模型包含数据,每个记录都有一个status
字段。因此,如果管理员我需要查看状态为“1”和“0”的所有记录,但是对于前端,我需要设置一些全局beforeFind
,它只会找到status
= 1 <的数据/ p>
还有一些模型hasMany
和其他belongsTo
因此也应该为前端过滤此数据,以便仅显示status
= 1
答案 0 :(得分:1)
您可以通过在模型的beforeFind
回调中添加规则来轻松完成此操作,该规则会将'status' => 1
添加到条件,除非已设置'status'
。因此,您可以随时覆盖条件,但默认为1
。
你应该明确这些事情,而不是依赖魔术回调行为。最好的方法是在模型中创建一个方法,如findPublicItems
,它将条件添加到条件数组中。在您只想显示status = 1
项的所有控制器方法中,显式调用此方法。在管理界面中,使用常规查找方法执行任何操作。