Выполнение операции соединения как moloquent в laravel - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть следующие модели в 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.

...