为cakephp中的模型指定所有查找调用的返回字段

时间:2013-01-03 17:49:12

标签: cakephp model

我无法相信我不记得如何执行此操作,但如何在模型中指定使用find()方法返回的默认字段?我在google上找不到怎么做,或者至少我不知道要搜索的措辞。

1 个答案:

答案 0 :(得分:1)

您最有可能需要做的是检查模型中fields方法中是否存在beforeFind()密钥。

如果未设置fields密钥,您可以将其设置为原生模型中的$ this->字段,并在AppModel中创建beforeFind(),然后您可以指示该方法使用模型中的$this->fields数组。

<强>更新

// AppModel.php

parent function beforeFind($queryData = array()) {
    if (empty($queryData['fields']) && !empty($this->fields)) {
        $queryData['fields'] = $this->fields;
    }
    return $queryData;
}

//在您的模型中:

public $fields = array(
    'Alert.id'
);

这将检查是否存在fields数组,然后检查是否存在$this->fields属性。如果确实存在,它会将其应用于查询数据并将修改后的查询数据返回给beforeFind() - 这将更改您的查找。

调整它以满足您的需求,祝您好运!