我试图设定一个条件,即客户端 ID 必须与客户端 ID 匹配,并且位置表中的区域字段必须与附加到与用户位置关联的位置 ID 的区域匹配。
所以我有3张桌子。当前表(t1),表relation1引用(t2),以及t2在relation2中引用的表(我们称之为t3)。
$this->getDbCriteria()->mergeWith(数组( 'with' => $rel, '条件'=>'relation1.client_id=:client_id AND 关系1.关系2.区域=:区域', 'params'=>array(':client_id'=>$client_id, ':region'=>$region), )); 返回$这个;
Relation1 是表中的关系,一旦从该关系中删除。关系 1 引用的表有一个名为关系 2 的关系,它可以让我到达需要检索区域值的位置。
如果我删除第二个条件和参数,它就可以工作,所以我知道关系 1 正在工作,而关系 2 也可以在其他情况下工作。如果想见他们,他们就在这里。
公共职能关系() { 返回数组( 'relation1' => 数组(self::BELONGS_TO, 't2', 't2_id'), ); }
和
公共职能关系() { 返回数组( 'relation2' => 数组(self::BELONGS_TO, 't3', 't3_id'), ); }
我真的觉得这应该工作。有什么帮助吗?