簡體   English   中英

在 Laravel eloquent 中使用中間關系過濾數據透視表數據

[英]Filtering pivot table data using intermediate relationship in Laravel eloquent

我正在 Laravel 中研究訪問控制級別 (ACL)。 這里有兩個pivot表,一個是role_user代表each users roles ,另一個是permission_role代表each roles permissions 現在我想從User模型中獲取permission_role數據透視表數據。

我的代碼示例。

In User Model

public function roles()
{
    return $this->belongsToMany(Role::class);
}

In Role Model

public function users()
{
    return $this->belongsToMany(User::class);
}

public function permissions()
{
    return $this->belongsToMany(Permission::class);
}
In Permission Model

public function roles()
{
    return $this->belongsToMany(Role::class);
}

我正在嘗試這種方式:-

$user->roles->with('permissions')->get();

它顯示了 BadMethodException。

我怎樣才能解決這個問題並獲得所需的輸出。

如果您想預先加載嵌套關系,您可以使用點分隔語法,例如:

User::with('roles.permissions')->find($id);

如果User模型已經被實例化,那么你可以使用load()方法代替(延遲預加載):

$user->load('roles.permissions');

Eager 加載文檔

暫無
暫無

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

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