Php 在找到条件之前先确定条件

Php 在找到条件之前先确定条件,php,cakephp,activerecord,cakephp-model,Php,Cakephp,Activerecord,Cakephp Model,我在寻找一些非常直观的东西 有几个带有数据的模型,每个记录都有一个状态字段。因此,如果管理员需要查看状态为“1”和“0”的所有记录,但对于前端,我需要在查找前设置一些全局,它将只查找状态为的数据 另外,一些模型有许多,而另一些属于,因此前端也应该对这些数据进行过滤,以便只显示状态为的数据=1您可以通过在模型的beforeFind回调中添加一条规则来轻松实现这一点,该回调将'status'=>1添加到条件中,除非已经设置了“状态”。因此,您可以随时覆盖该条件,但它将默认为1 但是,您应该将这些事情

我在寻找一些非常直观的东西

有几个带有数据的模型,每个记录都有一个
状态
字段。因此,如果管理员需要查看状态为“1”和“0”的所有记录,但对于前端,我需要在查找前设置一些全局
,它将只查找状态为
的数据


另外,一些模型
有许多
,而另一些
属于
,因此前端也应该对这些数据进行过滤,以便只显示状态为
的数据
=1

您可以通过在模型的
beforeFind
回调中添加一条规则来轻松实现这一点,该回调将
'status'=>1
添加到条件中,除非已经设置了“状态”
。因此,您可以随时覆盖该条件,但它将默认为
1


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

一些代码将帮助我们。。。您使用什么查询在前面显示记录?你试过给出条件吗?一些控制器使用简单的
查找
,其他的
分页
,所以需要一些东西。当然,如果我在
find
paginate
中设置了条件,我将得到所需的结果,但如果模型
有许多
,即使status=0,我也会得到这些条件,并且模型是否有办法检查admin?从技术上说,答案是肯定的,但这确实是错误的方法。模型不应该在意。模特儿的工作不是关心。模型只是获取数据,决定获取什么数据是控制器的工作。因此,您可以在模型中准备某些方法,以便轻松获取正确的数据,但不要让模型决定它返回的数据。对于当前模型数据可以正常工作,但这不会过滤
hasMany
。另外,如何在控制器中全局设置
条件
=>
状态
(例如,在befereFilter?)以便检查管理员