在laravel中使用Moloquent执行join操作

时间:2018-12-27 11:12:02

标签: mongodb laravel join eager-loading moloquent

我在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的简单连接。

0 个答案:

没有答案