これを行う方法を覚えていないなんて信じられませんが、find()
メソッドで返されるデフォルトのフィールドをモデルで指定するにはどうすればよいですか? これを行う方法がGoogleで見つからないか、少なくとも検索する文言がわかりません。
質問する
58 次
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 に答える