我正在使用Cakephp 1.3
由于我有多个控制器
例如,比分,Stundets等。
在分数上,我有不同条件的多种功能
现在我需要在过滤器函数之前添加一些逻辑以仅显示字段is_deleted = 0
我正在尝试此代码
$this->Score->Student->conditions='Student.is_deleted=>0';
由于通过所有条件,所有功能也太耗时
上面的代码无法正常工作。我想添加过滤器,所以我将在整个项目中工作
任何人都有一个主意
谢谢
最佳答案
您应该在Student
模型中使用beforeFind() method,而不是将条件逻辑放入beforeFilter()
方法中。
将此代码写入Student Model
:
function beforeFind($queryData)
{
if (!isset($queryData['conditions'])) {
$queryData['conditions'] = array();
}
$queryData['conditions'][$this->alias.'.is_deleted'] = '0';
return $queryData;
}
This post可能也可以帮助您实现相同目标。
您也可以使用Behavior Callbacks。
希望它对您有用。