是否可以为 Model 定义全局条件?
我有 2 个型号:User
和 Student
.在数据库中,他们都使用表 users
但是每个学生都设置了parent_id
给它的所有者(设置在同一个表中),而每个用户都有 parent_id
设置为 Null
.
例如,当我使用
$this->find('all');
在
Student
模型我想强制 Cake 只返回数据库表中的那些记录 users
哪里parent_id != Null
.所以问题是 - 我可以在模型中以某种方式定义全局条件吗?类似的东西:
public $conditions = array('Student.parent_id !=' => Null);
最佳答案
使用之前查找
您可以使用 before find修改为模型发出的所有查询:
function beforeFind(array $queryData) {
$queryData['conditions'][]['NOT'][$this->alias . '.parent_id'] = null;
return $queryData;
}
使用此技术时要小心,不要覆盖现有条件(注意额外的 []
),否则对“not parent_id 2”的查询将变为“not parent_id null”。
关于cakephp - 在模型中定义全局条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17543774/