0
<?php
   class User extends AppModel {
var $name = 'User';
var $displayField = 'fname';

}

我怎样才能只从这个模型中返回“地位”为“1”的用户?我不希望从控制器执行此操作,而是从模型执行此操作。

[解决方案] 在模型中

function beforeFind($queryData){
    $queryData['conditions']['standing'] = 1;
    return $queryData;
}
4

1 回答 1

2

beforeFind最简单的方法是在回调中放入一些过滤条件。修改$queryData变量并将您的限制添加到conditions键应该可以做到。

从手动输入 - http://book.cakephp.org/1.3/en/view/1049/beforeFind

在任何与查找相关的操作之前调用。传递给此回调的 $queryData 包含有关当前查询的信息:条件、字段等。

如果您不希望开始查找操作(可能基于与 $queryData 选项相关的决定),请返回 false。否则,返回可能修改过的 $queryData,或任何您想要传递给 find 及其对应项的内容。

您可以使用此回调来限制基于用户角色的查找操作,或根据当前负载做出缓存决策。

于 2012-07-06T11:44:00.490 回答