我想获取所有不相关记录的 ID。例如,我有 3 个表:
- 用户
- 模块
- 用户模块
还有一个目录部分,您可以在其中连接所需的模块。目录中有2个块:
- 现已连接
- 可用模块
起初,所有模块都在可用模块块中,一旦用户连接它,他必须从这个块中隐藏并转到现在连接块。
我需要使用 Yii2 ORM 来做到这一点。如果你写纯 SQL 会变成这样
SELECT m.id FROM
`modules` as m
inner join `user_modules` as um on um.id_module = m.id
inner join `users` as us on um.id_user = us.id
要获得连接的用户模块,您可以使用中间表创建关系。
要获取禁用的模块,我们使用普通查询但排除启用的模块。为此,我们获取连接模块的 ID 并将它们保存在
$this->enableModulesIds
. 或者我们将其作为参数传递以使其更明显。