【发布时间】:2011-08-04 18:15:04
【问题描述】:
我正在使用 Yii 并且有 3 个表:用户、设备,使用 users_devices 表 (user_id, device_id) 来定义它们之间的 MANY_MANY 关系。
我正在寻找的是通过 ActiveRecord 从属于特定用户 (users.id) 的设备 ID (devices.id) 查找设备的最简单方法。
场景是 REST API 正在查询设备,但出于安全原因,我想验证设备是否归用户所有。
这个想法是这样的:
$device = Devices::model()->findByPk($deviceId)->having(
array('user_id' => $userId));
提前感谢您的帮助,我已经研究了一段时间,但找不到优雅的解决方案。
【问题讨论】:
-
users_devices 是否有 user_id 和 device_id 作为主(复合)键?是这样,不要忘记像here 那样覆盖 prmaryKey()。您可以使用您的定制模型在该表上进行查找,以识别用户-设备关系(或缺少关系)。
-
你的意思是 MANY_MANY 不是 HAS_MANY。
标签: php mysql activerecord many-to-many yii