【发布时间】:2026-02-03 03:45:02
【问题描述】:
我正在尝试设置一个条件,即客户端 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'), ); }我真的觉得这应该可行。有什么帮助吗?
【问题讨论】:
-
我可能错了,但我想这正是我在Yii github repository 上报告的错误的情况。看看那里的简单修复,试试它是否对你有帮助。如果是这样,那么这是一个错误,您应该等待 1.1.11 出来并修复它。
-
我试过你的补丁没有用。感谢您的回复。还有其他想法吗?我得到的错误是找不到 relation1.relation2.region 列,但我不知道如何以其他方式定位它。
-
试试 relation2.region=:region 吗?没有关系1。
-
是的,我也试过好几次...
标签: php activerecord yii