0

私のモデルには他のテーブル/モデルとの多くの関係があります。たとえば、1 つのモデルの結果をフィールドで並べ替えるなど、contain パラメータを使用すると、クエリ結果の他のすべてのテーブルが欠落しており、contain パラメータに手動で書き込む必要があります。どうすれば取得できますか?関連するすべてのモデル データを手動で記述せずに?

 $data = $this->Cv->find('first', 
    array(
        'contain' => array('Cv_experience' => array('order' => 'Cv_experience.start_year desc'))));
4

1 に答える 1

0

recursiveモデルのプロパティに依存しているようです。「contain」を使用すると、以前は自動的に入っていたモデルが機能しなくなりますよね?

答えは、両方ではなくrecursiveORを使用する必要があるということです。containを使用している場合はcontain、再帰をオフ ( $recursive = -1;) に設定する必要があります。

どちらを使用するかについては、まったく使用しないことを強くお勧めしrecursveます。AppModel で -1 に設定し、追加のデータが必要なときはいつでも Containable Behavior を使用します。単純なブログアプリ以外では、再帰は悪い習慣であり、Cake 3 では完全に削除されていると思います.

ご注文の際の注意:含まれる機種でのご注文はできません。「含む」は複数のクエリを作成するため、試していることを実行したい場合は、JOIN を使用する必要があります。

于 2014-07-20T19:08:03.413 に答える