1

我不敢相信我不记得如何做到这一点,但是如何在我的模型中指定find()方法返回的默认字段?我在谷歌上找不到如何做到这一点,或者至少我不知道要搜索的措辞。

4

1 回答 1

1

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

如果fields未设置键,您可以在本机模型中将其设置为 $this->fields,并beforeFind()在 AppModel 中创建,然后您可以指示该方法使用$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()- 这将更改您的查找。

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

于 2013-01-03T17:56:44.753 回答