有人可以解释为什么当重定向到另一个页面时,下面的代码不起作用吗?
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()
另一个视图有什么区别?
答案 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