#php #laravel
Вопрос:
Я хочу определить, присутствует ли элемент в сеансе с помощью has, но он возвращает значение false .
$session = $request->session();
if($session->has($form->formid) ){
return 'found';
}else{
$session->put($form->formid,$link);
return $session->get($form->formid);
}
в блоке else я устанавливаю сеанс, и он правильно возвращает свое значение . Но во второй раз, когда я проверяю сеанс, он снова переходит в блок «Еще»!
Что здесь не так?
Ответ №1:
Вы не должны использовать сеанс в качестве переменной, можете ли вы попробовать это:
if($request->session()->has($form->formid) ){
return 'found';
}else{
$request->session()->put($form->formid,$link);
return $request->session()->get($form->formid);
}
Если вам необходимо сохранить данные флэш-памяти для нескольких запросов, вы можете использовать метод перепрошивки, который сохранит все данные флэш — памяти для дополнительного запроса. Если вам нужно сохранить только определенные флэш-данные, вы можете использовать метод сохранения:
$request->session()->reflash(); // It flashes all
// or
$request->session()->keep([$form->formid]); // It flashes only formid
Комментарии:
1. Я заменил свой код и вставил перепрошивку в блок else перед возвращением. Но никаких изменений не произошло! @ибрагим-доган