2015-12-20 3 views
2

При принятии следующего метода магазина на контроллереLumen Request имеет сеансовое приложение ('session') пуст. Перенаправление не работает

public function store(Request $request, JwtToken $jwtToken, Redirector $redirector) 
{ 
    $sessionData = $request->session()->all(); 
    $this->validate($request, [ 
     'username' => 'required', 
     'password' => 'required' 
    ]); 
} 

светового потока в $ sessionData всех данных в сеансе присутствует в том числе предыдущего URL. При переходе по валидатору по умолчанию он вызывает app('session')->previousUrl(), который возвращает null

Выполняя то же самое на $request->session(), он присутствует. Я понятия не имею, если я что-то испортил или это ошибка в просвете.

Я пробовал Redis и File driver.

+0

Вам может потребоваться опубликовать дополнительную информацию о вашей настройке, потому что быстрый тест на чистой установке Lumen работает очень хорошо, и предыдущий URL присутствует, причем как sessi о методах доступа, которые вы описали. – Bogdan

+0

@Bogdan Я обнаружил, что добавление зависимости Redirector к методу, чем запуск 'dd (app ('session') -> previousUrl());' когда Redirector присутствует в зависимостях, это возвращает 'null', когда вы его оставляете возвращает правильный url – DouglasDC3

ответ

0

Кажется, ошибка в люменах фиксированной, выполнив следующие действия

public function store(Request $request, JwtToken $jwtToken) 
{ 
    $sessionData = $request->session()->all(); 
    $this->validate($request, [ 
     'username' => 'required', 
     'password' => 'required' 
    ]); 

    //use global redirect helper function 
} 

Удалены ссылки перенаправителя и использовали глобальную вспомогательную функцию

0

Вы забыли это на bootstrap/app.php:

/* 
|-------------------------------------------------------------------------- 
| Register Middleware 
|-------------------------------------------------------------------------- 
| 
| Next, we will register the middleware with the application. These can 
| be global middleware that run before and after each request into a 
| route or middleware that'll be assigned to some specific routes. 
| 
*/ 

$app->middleware([ 
    Illuminate\Cookie\Middleware\EncryptCookies::class, 
    Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
    Illuminate\Session\Middleware\StartSession::class, 
    Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    Laravel\Lumen\Http\Middleware\VerifyCsrfToken::class, 
]); 
+0

не проблема, все его готовые в нем кажется ', Redirector $ redirector' заставляет его сломаться. если вы удалите перенаправитель, он работает – DouglasDC3

Смежные вопросы