2015-03-13 2 views
0

Эта проблема только началась сегодня утром, и я понятия не имею, что изменилось, чтобы вызвать ее. Я внедрил небольшую форму поиска в верхнем навигаторе моего сайта, и на прошлой неделе он работал отлично. Сегодня утром он возвращает «TokenMismatchException» для каждой отправки.Форма Laravel :: открытая() датировка истекло _token?

Через мой отладчик я вижу в csrf-фильтре, что действительно значение Input::get('_token') отличается от значения Session::token(). Я также могу просмотреть созданный исходный HTML-код формы и сравнить значение автоматически сгенерированного скрытого поля _token и увидеть, что он отличается от токена в хранилище сеансов (с использованием собственного хранилища файлов 4.2, чтобы эти файлы были правы в моей среде IDE).

Похоже, что по какой-либо причине значение сгенерированного _token всегда равно значению токена на сеансе. Другими словами, Form::open() дает мне токен, который истек один сеанс назад. Или создается новый сеанс послеForm::open() выводит токен.

Я смотрю на это в течение 2,5 часов и не могу понять, что может быть причиной этого. Есть идеи?

EDIT: ДОБАВЛЕНИЕ КОДА -

вид:

{{ Form::open(['route' => 'search.customer_job', 'id' => 'customer-job-search-form']) }} 
... // a single select field 
{{ Form::close() }} 

маршрут:

Route::post('search/customerJobCombined', ['before' => ['csrf', 'auth'], 'as' => 'search.customer_job', 'uses' => '[email protected]']); 

Он никогда не достигает контроллера, так что я оставлю это, чтобы избежать стены-о- текст. Только одна переменная передается зрения - это населяет выбора опций - и это делается с помощью зрения композитора - вот что:

public function compose($view) 
{ 
    $result = $this->command_bus->execute(new GenerateCustomerJobQuickSearchOptionsCommand()); 
    $view->with('customer_job_quick_search_options', $result->options); 
} 

Все, что работает просто отлично, хотя.

EDIT # 2: Это была действительно глупая ошибка, связанная с некоторым кодом отладки (Session::flush()). Я добавил несколько дней назад и забыл о том, что в отпуске.

+0

Какой тип сервера вы используете? вы пытались изменить сеансовый драйвер? – itachi

+0

В настоящее время все это происходит на Homestead, поэтому Ubuntu 14.04/GNU/Linux. Я не изменил драйвер сеанса, но недавно обновил свой бродячий бокс. Я попробую изменить драйвер, чтобы узнать, помогает ли это ... В идеале мне не нужно было менять драйвер для этого. – patricksayshi

+0

Изменение драйвера сеанса (на redis) не помогло – patricksayshi

ответ

0

Это была ошибка с использованием старого кода отладки.

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