我正在使用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

希望它对您有用。

10-06 05:39