Я пытаюсь перенаправить в Laravel вот так:
в моем контроллере:
$state = false; return redirect()->route('newPr')->with('errorMessageDuration', 'error', $state);
и, на мой взгляд, я пытаюсь сделать это так:
<input id="PrId" type="text" value="{{ isset($state) ? $state : '' }}">
но почему-то это не работает, оно остается пустым.
Я хочу, чтобы он был сохранен навсегда.
withErrors()
используйте withErrors()
с ассоциативным массивом:
return redirect()->route('newPr')->withErrors(compact('state'));
Затем вы можете просто использовать переменную $ errors в своем представлении.
Из документов :
Переменная $ errors всегда определяется и может быть безопасно использована. Переменная $ errors будет экземпляром Illuminate \ Support \ MessageBag. Для получения дополнительной информации о работе с этим объектом ознакомьтесь с его документацией .
Попробуйте использовать сеанс для его отображения,
<input id="PrId" type="text" value="{{ isset(session($state)) ? $session($state) : '' }}">
Используйте сеансы.
$request->session()->flash('error', 'Some error message'); return redirect()->route('newPr');
И в перспективе:
@if (session('error')) The error is {{ session('error') }} @endif
with
методом принимает 2 параметра. Первый является key
и вторым value
Если первым параметром является массив, его key
будет key
а value
будет value
.
Так что в вашем случае вы можете делать ->with('state', $state)
Or ->with(compact('state'))
with
методом будет очищать это значение до session
, чтобы получить значение, необходимое для его получения из session
как этот session('state')
Таким образом вы можете передать любое значение.
Вы не можете отправить переменную с перенаправлением, но если вы хотите попробовать с сеансом.
Взгляните на мой старый ответ здесь: Попытка передать переменную виду, но в представлении ничего не отображается – laravel