Laravel 5 重定向消息

Laravel 5 redirect with message

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

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()->back()相同,一切正常,显示消息。重定向 back()to() 另一个视图有什么区别?

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

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

我目前在 Laravel 5.7 HTTP Redirects 并且此代码在控制器中对我有效:

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.');
}

在视图 (etc.blade.php) 中我这样做:

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