2017-09-16 7 views
0

hasOnehasManyを同じmodelに設定したいのですが、私のコードの一部では1つの結果しか必要ありませんが、他の部分ではすべての結果が必要です私のサイトのテーブルに戻ります):同じテーブルのHasOneとHasMany

$this->hasOne('Vendas') 
    ->setForeignKey('id_cliente') 
    ->setBindingKey('id') 
    ; 

    $this->hasMany('Vendas') 
    ->setForeignKey('id_cliente') 
    ->setBidingKey('id'); 

これは可能ですか、間違っていますか?

答えて

1

https://book.cakephp.org/3.0/en/orm/associations.htmlを読んでください。 全体のページをよく読んでください。

  • className:現在のモデルに関連付けられているテーブルのクラス名。 'User hasOne Address'関係を定義する場合、classNameキーは 'Addresses'と等しくなければなりません。
  • 条件:検索の配列()のような互換性のある条件[ 'Addresses.primary' =>真]

はあなたのassocsのために必要なクラス名と条件を定義します。

$this->hasOne('Foo', [ 
     'className' => 'Foo', 
     'conditions' => [/* whatever you need*/] 
    ]); 

    $this->hasMany('Bar', [ 
     'className' => 'Foo', 
     'conditions' => [/* whatever you need*/] 
    ]); 
+0

私はあなたが 'hasMany'の別名とクラス名を混同したと思う、修正、真 – ndm

+0

MEH)。 – burzum

0

関係が1- *の場合、関係をhasMany()と定義する必要があります。次に、1つの結果のクエリと複数の結果のクエリを書きます

関連する問題