Laravel 5重定向消息

时间:2016-01-02 04:06:22

标签: php laravel redirect laravel-5 laravel-5.2

有人可以解释为什么当重定向到另一个页面时,下面的代码不起作用吗?

return redirect()->route('homepage')->with('message', 'I am so frustrated.');

重定向按预期工作,但不会显示该消息。

视图如下:

@if ( session()->has('message') )
    <div class="alert alert-success alert-dismissable">{{ session()->get('message') }}</div>
@endif

当我将其更改为:

return redirect()->route('contact')->with('message', 'I am so frustrated.');

,与 redirect() - &gt; back()相同,一切正常,并显示消息。重定向back()to()另一个视图有什么区别?

2 个答案:

答案 0 :(得分:5)

如果您使用的是Laravel 5.2,请确保您使用该访问会话数据的所有路由都包含在web中间件组中。

如果您的contact路由位于web中间件组内,但您的homepage路由不在,则可以解释您的问题。

答案 1 :(得分:0)

我目前正在使用Laravel 5.7 HTTP Redirects,并且此代码在Controller中对我有用:

public function register(Request $request)
{
    $this->validator($request->all())->validate();
    event(new Registered($user = $this->create($request->all())));

    return $this->registered($request, $user) ?: 
    redirect($this->redirectPath())->with('success', 
    'An activation link was send to your email address.');
}

然后在View(etc.blade.php)中执行:

@if(session('success'))
     <span class="alert alert-success" role="alert">
         <strong>{{ session('success') }}</strong>
     </span>
@endif