3
クライアントIDがクライアントIDと一致する必要があり、場所テーブルの地域フィールドが、場所IDに関連付けられた地域と一致している必要があります。ユーザーの場所に関連付けられます。Yiiアクティブレコード別のテーブルから名前付きスコープの複数の条件を追加する
私は3つのテーブルを持っています。現在のテーブル(t1)、テーブルrelation1は(t2)を参照し、テーブルt2は関係2を参照します(これをt3と呼びます)。
$this->getDbCriteria()->mergeWith(array( 'with' => $rel, 'condition'=>'relation1.client_id=:client_id AND relation1.relation2.region=:region', 'params'=>array(':client_id'=>$client_id, ':region'=>$region), )); return $this;
Relation1は、このテーブルから削除されたテーブル内のリレーションです。 relation1が参照するテーブルには、relation2というリレーションがあり、region値を取得する必要がある場所に移動します。
私は2番目の条件とパラメータを削除しても動作するので、relation1は動作していますが、relation2は他のコンテキストでも動作しています。ここで彼らを見たいと思うのです。
public function relations() { return array( 'relation1' => array(self::BELONGS_TO, 't2', 't2_id'), ); }
と
public function relations() { return array( 'relation2' => array(self::BELONGS_TO, 't3', 't3_id'), ); }
これは動作するはずのように私は本当に感じています。どんな助け?
私は間違っているかもしれませんが、これは私が[Yii github repository](https://github.com/yiisoft/yii/issues/586)で報告したバグのケースであると思います。簡単な修正をチェックして、それがあなたに役立つかどうか試してみてください。もしそうであれば、それはバグであり、1.1.11が出て修正するのを待つべきです。 – Johnatan
私はあなたのパッチを無駄にしようとしました。しかし、返信をありがとう。他の考え?私が得るエラーは、relation1.relation2.region列が見つからないということですが、それ以外の方法でターゲットを設定する方法はわかりません。 – deez
試着relation2.region =:地域?関係なし1。 – Johnatan