我在laravel 5.7中具有以下模型:
class User extends Moloquent
{
public function actionGroups()
{
return $this->belongsToMany('App\Model\Auth\ActionGroup', null, 'user_ids', 'action_group_ids');
}
}
和
class ActionGroup extends Moloquent
{
public function users()
{
return $this->belongsToMany('App\Model\Core\User', null, 'action_group_ids', 'user_ids');
}
public function allowedActions()
{
return $this->belongsToMany('App\Model\Auth\Action', null, 'allowed_action_group_ids', 'allowed_action_ids');
}
}
以及:
class Action extends Moloquent
{
public function allowedActionGroups()
{
return $this->belongsToMany('App\Model\Auth\ActionGroup', null, 'allowed_action_ids', 'allowed_action_group_ids');
}
}
每个动作都有唯一的代码;将所有操作(按ID)分配给操作组,并将操作组分配给用户。具有动作的唯一代码,我需要查看用户是否具有该动作:
$user->actionGroups()->with(['allowedActions' => function($query){
$query->where('code', 'UNIQUE_ACTION_CODE');
}])->get();
但是它不起作用。由于我最近刚转移到mongo和noSQL,所以我不知道该如何在noSQL中进行类似于SQL的简单连接。