簡體   English   中英

Laravel has很多不返回集合

[英]Laravel hasMany not returning collection

我正在構建許可中間件。 權限基於用戶操作類型和/或模塊/元素類型(即刪除按鈕)。

模型ActionPermission (表action_permission )具有所有權限類型,而表users__action_permissionUserActionPermission其中包含所有用戶及其權限ID。

User

有一個permissions()方法可獲取用戶的所有權限

public function permissions()
{
    return $this->hasMany('App\ActionPermission');
}

checkUserPermissions (中間件)

public function handle($request, Closure $next)
{
        $response = $next($request);
        $userId = Auth::id();
        $userPermissions = User::findOrFail($userId)->permissions()->get();
        dd($userPermissions);
}

由於permissions()正在尋找user_id密鑰,並且ActionPermission模型(表action_permission )沒有相關的user_id密鑰,因此我需要表users__action_permission來保存user_id

我的問題是Laravel是否可以通過User::permissions()訪問users__action_permission表,還是我需要為此建立模型?

您不需要數據透視表的模型。

在用戶模型中添加

public function ActionPermissions() {
    return $this->belongsToMany('App\User', 'users_action_permission');
}

在動作權限模型中添加

public function Users() {
    return $this->belongsToMany('App\ActionPermission', 'users_action_permission');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM