为cakephp中的所有模型添加一个通用范围

时间:2012-07-22 11:51:09

标签: cakephp-2.2

我正在构建一个在线帐户应用程序,其中每个企业都有自己的数据,因此每个表都有一个字段business_id。

有没有办法自动为每个模型添加条件

Model.business_id => x 

例如,如果用户搜索了包含项目的所有交易,则添加的条件为:

Transaction.business_id => x
Project.business_id => x

我猜这最好放在一个行为中,因为它适用于除两个模型之外的所有模型

由于

1 个答案:

答案 0 :(得分:1)

你可以在beforeFind()中修改查询数据,这也可以在一个行为中

在你的模特中:

$actsAs = array('BusinessCondition');

行为类似于:

<?php
App::uses('AuthComponent', 'Controller/Component');

class BusinessCondition extends ModelBehavior {

    public function beforeFind(Model $Model, $query) {
        $query['conditions'][$Model->alias . '.business_id'] = AuthComponent::user('business_id');
        return $query;
    }
}