У меня есть следующие модели в 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');
}
}
Каждое действие имеет уникальный код;Все действия назначаются (по идентификатору) группам действий, а группы действий назначаются пользователям.Имея уникальный код действия, мне нужно посмотреть, есть ли у пользователя это действие или нет:
$user->actionGroups()->with(['allowedActions' => function($query){
$query->where('code', 'UNIQUE_ACTION_CODE');
}])->get();
Но оно не работает.Поскольку я только недавно перешел на mongo и noSQL, я понятия не имею, как мне сделать простое SQL-подобное объединение в noSQL.