簡體   English   中英

如何在 Laravel 路由上添加“或”條件來調用中間件?

[英]How to add 'OR' condition to call middleware on Laravel Routes?

我想在 laravel 路由上為角色和權限添加中間件的“或”條件。 任何人都可以在這里幫助我。 以下是我目前正在通過一些互聯網研究嘗試的代碼,但它不起作用。

Route::get('get-all-users', 'API\Admin\AdminController@get_all_users')->middleware(['role:admin' OR 'permission:view.all.users']);

在這種情況下,您將需要稍微更改數據庫結構。 表格看起來像:

  • 行動
  • 角色
  • Role_action_mapping => 這將具有上述兩個表的外鍵作為多對多關系。

現在,每個動作都應該有一個分配給它的角色。 因此,權限view.all.users將在表中有一個條目,並在Role_action_mapping中分配給它的admin (或任何所需的角色)。

因此,您所要做的就是在路由上設置一個中間件permission:view.all.users ,然后檢查用戶的當前role是否在Role_action_mapping表中具有view.all.users條目。

暫無
暫無

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

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