Laravel响应下载在Route中间件和前缀中不起作用

时间:2018-10-23 15:57:49

标签: laravel laravel-5 laravel-routing

Route::group(['middleware' => ['role:0','auth']],function(){
    Route::prefix('s')->group(function () {
        Route::name('s.')->group(function () 
   {Route::get('order/po/download/{item}', function($item = ''){
    return response()->download(storage_path('app/public'.$item));
 });

路由网址如下:

s/order/po/download/$item

问题是,每次我访问该URL时,它将无故跳回登录页面。

对此有任何帮助吗?它可以在我的本地流浪者中工作。但是,当我将项目推送到实时服务器上时,即使我已经登录,它也始终重定向到登录名。

如果我将其放置在中间件路由之前每个人都可以访问的外部(不是最佳解决方案,但它可以工作):

Route::get('order/po/download/{item}', function($item = ''){
    return response()->download(storage_path('app/public'.$item));
 });

添加了角色中间件:-

    public function handle($request, Closure $next,$role)
{
    $user = Auth::user();
        // Check if user has the role This check will depend on how your roles are set up
        if($user->role_id == $role)
        {
            return $next($request);
        }
        else
        {
            return redirect()->back();
        }


}

}

0 个答案:

没有答案