CakePHP beforeFind条件

时间:2012-01-20 08:31:30

标签: php cakephp activerecord cakephp-appmodel

我正在寻找非常直观的东西。

有几个模型包含数据,每个记录都有一个status字段。因此,如果管理员我需要查看状态为“1”和“0”的所有记录,但是对于前端,我需要设置一些全局beforeFind,它只会找到status = 1 <的数据/ p>

还有一些模型hasMany和其他belongsTo因此也应该为前端过滤此数据,以便仅显示status = 1

的数据

1 个答案:

答案 0 :(得分:1)

您可以通过在模型的beforeFind回调中添加规则来轻松完成此操作,该规则会将'status' => 1添加到条件,除非已设置'status' 。因此,您可以随时覆盖条件,但默认为1

你应该明确这些事情,而不是依赖魔术回调行为。最好的方法是在模型中创建一个方法,如findPublicItems,它将条件添加到条件数组中。在您只想显示status = 1项的所有控制器方法中,显式调用此方法。在管理界面中,使用常规查找方法执行任何操作。