我有一个名为“postContact”的路线帖子,当帖子成功时,我会重定向到同一个contact.blade.php,其中放置帖子:
<form action="{{ route('post_contact) }}"></form>
如果帖子成功,我想看一个msg,但是输入:: get('某些数据')对我不起作用。
这是我的控制器简历:
public function postContact($params) {
//if successful
$msg_params = array(
'msg_type' => 'success',
'msg_text' => 'my text to show',
);
return redirect()->back()->withInput($msg_params);
}
但是在contact.blade.php中这不起作用:
@if(isset($msg_type))
<div class="alert">{{ $msg_text }}</div>
@endif
变量不会退出......
我不想在这里使用flash数据,因为contact.blade是另一个外部app laravel的模块,无法共享会话。
这里发生了什么?
答案 0 :(得分:1)
因为进行重定向,所以在会话中设置这些变量。所以你可以试试:
@if(Session::has('msg_type'))
<div class="alert">{{ Session::get('msg_text') }}</div>
@endif
如果您不想使用会话变量,则可以使用路由参数。您可以使用Request
facade:
@if(Request::has('msg_type'))
<div class="alert">{{ Request::get('msg_text') }}</div>
@endif
答案 1 :(得分:1)
如果您要重定向回页面,Laravel会将数据存储在会话中。所以你需要输入它来显示数据:
@if(Session::has('msg_type'))
<div class="alert">
{{ Session::get('msg_text') }}
</div>
@endif
希望这有效!
答案 2 :(得分:0)
控制器
return redirect()->back()->with('success', ['your message,here']);
刀片:
@if (\Session::has('success'))
<div class="alert alert-success">
<ul>
<li>{!! \Session::get('success') !!}</li>
</ul>
</div>
@endif