我有一个 Laravel 网站,该网站的表'users'存储了role_id,表'companies'存储了自定义永久链接。 默认登录路径用于具有ADMIN角色的用户。我需要为具有CLIENT角色的用户添加其他视图和路由。 因此,当用户访问URL '/ custom-company-permalink-from-db'且未登录时,应将其重定向到URL '/ custom-company- permalink-from-db / login'。
这是我的路线:
Route::middleware('web')->group(function() {
Auth::routes(['register' => false]);
Route::get('/', ['uses' => 'HomeController@index', 'as' => 'home']);
Route::get('/{company}', ['uses' => 'HomeController@overview', 'as' => 'overview']);
});
Route::namespace('Admin')->prefix('admin')->name('admin.')->middleware(['auth', 'check.if.admin'])->group(function() {
Route::get('/dashboard', ['as' => 'dashboard', 'uses' => 'AdminController@dashboard']);
});
我正在考虑将其添加到路线:
Route::get('/{company?}/login','Frontend\Auth\LoginController@showLoginForm')->name('client.login');
然后将 app / Http / Controllers / Auth 文件复制到 app / Http / Controllers / Frontend / Auth < / strong>,然后进行必要的修改。
还有另一种方法可以实现这一目标吗?推荐的方法是什么?
答案 0 :(得分:0)
由于要根据角色分开用户,因此可以使用相同的登录名并根据名称空间区分路由。在auth组中,创建两个组,一个用于admin(现有),另一个用于客户端。您已经在使用中间件来检查用户是否为admin。同样,您可以创建一个新的中间件来检查用户是否是客户端。
Route::middleware('auth')->group....
Route::namspace..prefix..->middleware('check.if.admin')->group(...
) //end check if admin group
Route::namespace('client')->prefix('client')->middleware('check.client')->group(...)
)//end auth group