cakephp - 在模型中定义全局条件

标签 cakephp cakephp-2.0 cakephp-2.1 cakephp-model

是否可以为 Model 定义全局条件?

我有 2 个型号:UserStudent .在数据库中,他们都使用表 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/

相关文章:

mysql - 使用 cakephp 2.4.6 从 MYSQL 迁移到 MariaDB

php - 蛋糕 PHP : Find condition on deeper level of recursion

php - CakePHP 2.x 在 CSS 中使用 PHP

php - 所有用于标记的插件在哪里?

PHP fatal error : Class 'Inflector' not found

php - 如何配置log4php以将不同的日志级别记录到同一记录器的不同文件中

templates - 我如何在cakephp中实现多模板

cakephp-2.0 - 提供 ID 以提交按钮

php - 如何在 CakePHP 2.6 中使用 IN(of MySQL) 一起删除多条记录

cakephp 复选框多选只发送最后选择的复选框的值