laravel - Laravel 中间件路由到不同的控制器
问题描述
在我的路由/web/php 中,我为管理员用户分组了路由
Route::group(['middleware' => ['AdminAuth']],function(){
Route::get('home', 'AdminController@home');
Route::post('changePassword', 'AdminController@changePassword');
Route::post('settings', 'AdminController@settings');
Route::get('getorder', 'AdminController@getorder');
我添加了另一个中间件,想将不同的管理员用户传递给不同的控制器
Route::middleware(['RestaurantAdmin'])->group(function () {
Route::get('home', 'AdminController@home2');
});
这就是中间件的样子
class AdminAuth
{
public function handle($request, Closure $next)
{
if(Auth::user()){
if (Auth::user()->type == "3" || Auth::user()->type == "1") {
return $next($request);
}
}
Auth::logout();
return redirect('admin');
}
}
class RestaurantAdmin
{
public function handle($request, Closure $next)
{
if(Auth::user()){
if (Auth::user()->type == "3" ) {
return $next($request);
}
}
return $next($request);
}
}
我知道 RestaurantAdmin 无论如何都有相同的输出,但我认为它应该因为不同的路线而去不同的控制器。如果您是 RestaurantAdmin(type = 3),我应该在哪里进行更改以使其工作,您以相同的控制器结束但功能不同。我应该检查每个函数中的类型,然后
if (admin){ }elseif(restaurantadmin){ }
或者它应该在路线中,但我理解 nad 使它不正确
解决方案
推荐阅读
- r - 在ggplot2中为组轴标签添加方括号
- mongodb - 为什么我的 GKE 节点被抢占后,我失去了与 MongoDB 的连接?
- java - 带有 maven 和 tanuki 包装的弹簧靴
- vb.net - 单击透明窗口 - 不适用于所有计算机
- android - Kotlin Firebase RecyclerView 的问题
- html - SVG 路径之间的空白空间
- angular - 对 SAVE_ADD_ONE_SUCCESS 使用效果时,NgRx 数据添加实体订阅永远不会触发
- python - 为什么我的纬度和经度只返回一个值?(对于循环问题)
- windows - %CPU 利用率排名前 10 的进程 - Windows PowerShell
- mysql - 在 mysql 中使用 Prepare 语句