1

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

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 に答える