重定向回输入不在Laravel中

时间:2016-05-24 07:23:49

标签: php laravel laravel-5 laravel-5.2

我有一个名为“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的模块,无法共享会话。

这里发生了什么?

3 个答案:

答案 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