我正试图像这样在Laravel中重定向:
在我的控制器中:
$state = false;
return redirect()->route('newPr')->with('errorMessageDuration', 'error', $state);
在我看来,我试着这样做:
<input id="PrId" type="text" value="{{ isset($state) ? $state : '' }}">
但不知何故它不起作用,它一直是空的。
我希望永久保存。
答案 0 :(得分:2)
使用withErrors()
代替关联数组,如下所示:
return redirect()->route('newPr')->withErrors(compact('state'));
然后您可以在视图中使用$ errors变量。
来自docs:
$ errors变量始终定义并且可以安全使用。该 $ errors变量将是Illuminate \ Support \ MessageBag的一个实例。 有关使用此对象的更多信息,请check out its documentation。
答案 1 :(得分:2)
尝试使用会话来显示它,
<input id="PrId" type="text" value="{{ isset(session($state)) ? $session($state) : '' }}">
答案 2 :(得分:1)
使用会话。
$request->session()->flash('error', 'Some error message');
return redirect()->route('newPr');
在视图中:
@if (session('error'))
The error is {{ session('error') }}
@endif
答案 3 :(得分:1)
with
方法有2个参数。第一个是key
和第二个value
或者如果第一个参数是一个数组,其key
将是key
而value
将是{ {1}}。
因此,在您的情况下,您可以执行value
或->with('state', $state)
->with(compact('state'))
方法会将此值刷新到with
,以便检索从session
session
session('state')
获取该值所需的值ViewController
您可以通过这种方式传递任何值。
答案 4 :(得分:0)
您无法使用重定向发送变量,但如果您想尝试使用会话。
在这里查看我的旧答案:Trying to pass a variable to a view, but nothing is shown in the view - laravel