Yii通过many_many关系找到模型

Rya*_*rty 6 php mysql activerecord many-to-many yii

我正在使用Yii并拥有3个表:用户,带有users_devices表(user_id,device_id)的设备,用于定义它们之间的MANY_MANY关系.

我正在寻找的是通过ActiveRecord从其id(devices.id)中找到属于特定用户(users.id)的设备的最简单方法.

方案是REST API正在查询设备,但出于安全原因,我想验证设备是否由用户拥有.

这样的想法是这样的:

$device = Devices::model()->findByPk($deviceId)->having(
    array('user_id' => $userId));
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助,我已经研究了一段时间,但找不到优雅的解决方案.

Rya*_*rty 7

在Yii论坛上得到了一些帮助,这让我自己弄清楚了:

$device = Device::model()->with('users')->find(array(
    'condition' => 'user_id = :userId AND device_id=:deviceId',
    'params' => array(':userId' => Yii::app()->user->id, ':deviceId' => $_GET['id'])));
Run Code Online (Sandbox Code Playgroud)