加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – Yii2 viaTable加入条件

发布时间:2021-04-03 13:25:31 所属栏目:编程 来源:网络整理
导读:可以在viaTable的join部分设置条件吗? 目前我得到了这个: return $this-hasMany(User::className(),['id' = 'id_user']) -from(User::tableName()) -viaTable(RoomActiveUser::tableName(),['id_room' = 'id'],function($query) { return $query-andWhere(

可以在viaTable的join部分设置条件吗?
目前我得到了这个:

return $this->hasMany(User::className(),['id' => 'id_user'])
                    ->from(User::tableName())
                    ->viaTable(RoomActiveUser::tableName(),['id_room' => 'id'],function($query) {
                        return $query->andWhere(['id_role' => 
                                 RoleHelper::getConsultantRole()->id]);
                    });

但这不是一个好的解决方案.为什么?
当您执行左连接时,id_role条件将使其实际成为内连接. id_role条件应该放在连接的ON部分内.

我正在网上搜索并检查代码,但我看不出它是如何解决的.

最佳答案 我得到了强强的答案 – $query-> onCondition()应该用于我需要的东西.结果代码:

return $this->hasMany(User::className(),function($query) {
                          $query->onCondition(['id_role' => 
                             RoleHelper::getConsultantRole()->id]);
                      });

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读