Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 尝试将一条路由分配给多个中间件_Laravel - Fatal编程技术网

Laravel 尝试将一条路由分配给多个中间件

Laravel 尝试将一条路由分配给多个中间件,laravel,Laravel,为多个中间件分配一个路由时出现问题 这是我在web.php中看到的 Route::group(['middleware' => ['hodAndProvost']], function () { Route::match(['post','get'],'applied', 'LeavesController@applied'); Route::match(['post','get'],'approval/{id}', 'LeavesController@approv

为多个中间件分配一个路由时出现问题 这是我在web.php中看到的

    Route::group(['middleware' => ['hodAndProvost']], function () {
    Route::match(['post','get'],'applied', 'LeavesController@applied');
    Route::match(['post','get'],'approval/{id}', 'LeavesController@approval');
});
这是我的App\htpp\kanel.php中的内容

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'hodAndProvost' => [
        \App\Http\Middleware\hodMiddleware::class,
        \App\Http\Middleware\provostMiddleware::class,
    ],

    'application' => [
        \App\Http\Middleware\hodMiddleware::class,
        \App\Http\Middleware\provostMiddleware::class,
        \App\Http\Middleware\lecturerMiddleware::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];
这就是我的Hodmidware里的东西

public function handle($request, Closure $next)
{
    if ($request->user() && $request->user()->user_access_id != '2')
{
    return new Response(view('unauthorized')->with('role', 'HOD'));
}
    return $next($request);
}
public function handle($request, Closure $next)
{
    if ($request->user() && $request->user()->user_access_id != '3')
{
    return new Response(view('unauthorized')->with('role', 'PROVOST'));
}
    return $next($request);
}
这就是我的教务长办公室

public function handle($request, Closure $next)
{
    if ($request->user() && $request->user()->user_access_id != '2')
{
    return new Response(view('unauthorized')->with('role', 'HOD'));
}
    return $next($request);
}
public function handle($request, Closure $next)
{
    if ($request->user() && $request->user()->user_access_id != '3')
{
    return new Response(view('unauthorized')->with('role', 'PROVOST'));
}
    return $next($request);
}
这就是我得到的错误

Symfony\Component\Debug\Exception\FatalThroTableError


找不到类“App\Http\Middleware\Response”

您没有导入
Response
类,因此它在同一命名空间中查找它。您甚至不需要创建新的
响应
view()
也是一个响应

请尝试以下代码:

<?php

namespace App\Http\Middleware;

use Closure;

class hodMiddleware
{
    public function handle($request, Closure $next)
    {
        if ($request->user() && $request->user()->user_access_id != 2) {
            return view('unauthorized')->with('role', 'HOD'); // like your example
            // OR: //
            return redirect()->back();
        }

        return $next($request);
    }
}

添加
使用light\Support\Facades\Response在中间件的顶部,或者您可以使用
response()
helper.@porloscerosψ仍然不工作,还是相同的错误?尝试
returnresponse()->view('unauthorized',['role'=>'PROVOST',401)
@porloscerrosψsir问题在于不应该读取该行返回,因为该值是正确的,读取该行意味着登录用户不是教务长,或者HODI意味着您将
返回新响应(视图('unauthorized')->替换为('role','provost')通过
返回响应()->查看('unauthorized',['role'=>'PROVOST',401)