Загрузка ответа Laravel не работает внутри промежуточного ПО и префикса Route - PullRequest
0 голосов
/ 23 октября 2018
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));
 });

URL-адрес маршрутизации будет выглядеть следующим образом:

s/order/po/download/$item

Проблема заключается в том, что каждый раз, когда я получаю доступ к этому URL, он переходит на страницу входа без всякой причины.

Может помочь сэтот?Это работает в моем местном бродяге.Тем не менее, когда я помещаю проект на работающий сервер, он всегда перенаправляется на страницу входа, даже если я уже вошел в систему.

Если я поставлю его снаружи, доступным для всех до Middleware Route (не лучшее решение, ноэто работает):

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();
        }


}

}

...