我想在Laravel 5.4
過去我開始與不同的表使用user_types
不同的表工作,但對於這個項目我想使用默認users
表的所有類型的用戶,只是分開他們的訪問(角色),我不知道如何做到這一點,這就是爲什麼我需要它的指導。 PS:對那些可能想要代碼的朋友,目前還沒有代碼!在開始編碼之前我需要領導,所以請不要評論垃圾郵件。需要指導與laravel角色
親切的問候。
我想在Laravel 5.4
過去我開始與不同的表使用user_types
不同的表工作,但對於這個項目我想使用默認users
表的所有類型的用戶,只是分開他們的訪問(角色),我不知道如何做到這一點,這就是爲什麼我需要它的指導。 PS:對那些可能想要代碼的朋友,目前還沒有代碼!在開始編碼之前我需要領導,所以請不要評論垃圾郵件。需要指導與laravel角色
親切的問候。
假設用戶可以有多種角色,然後做到這一點。首先是你必須有3個表.. tbl_users
,tbl_user_roles
和tbl_roles
其中
tbl_users
id
username
password
someotherfields
tbl_user_roles
id
user_id
role_id
個tbl_roles
id
rolename
然後在model user
你必須分配的角色有關係。
public function roles()
{
return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id')->withTimestamps();
}
現在你的角色..現在怎麼都取決於角色的頁面限制..你必須做的是有一箇中間件吧..這裏是如何:
創建一箇中間件所謂RolePermission,在你的終端運行
php artisan make:middleware RolePermission
然後在它的內容
public function handle($request, Closure $next, $roles)
{
$roles = explode('|',$roles);
$userRoles = Auth::user()->roles;
foreach($userRoles as $role)
{
if(in_array($role->id, $roles))
{
return $next($request);
}
}
// Redirect
return redirect()->back();
}
基本上它是檢查如果authed用戶列表角色是在允許使用頁面的角色..
然後添加一個頁面的限制是在您的路由文件,例如假設角色管理員有id:1主持人ID:2 SimpleUser ID:3,那麼頁面用戶管理需要你的管理員進入,然後有這樣的:
// Group of route that will only be accessible for Users with Level = 1 (Administrator)
Route::group(['middleware' => 'rolePermissions:1'], function(){
Route::get('/users',['as'=>'users', 'uses'=>'[email protected]']);
}
// Multiple roles for a page
Route::group(['middleware' => 'rolePermissions:1|2|3|4'], function(){
// routes here
}
此外,中間件還沒有工作..你必須編輯內核並將其添加到受保護的$ routeMiddleware中。
'rolePermissions' => \App\Http\Middleware\RolePermissions::class,
和它的一切設置,歡呼..你現在有頁面限制認證的用戶角色..
請至少做一個谷歌搜索。參考:https://github.com/httpoz/roles – Priya
@DavidMakogon正如我所說的要求'提供代碼'是垃圾評論,因爲是指導問題不是一個問題解決問題,所以很明顯,沒有代碼尚未向人們要求它。 '有些人只是把這樣的評論,這樣得到這個網站的排名!' – djhru