Php 刷新后显示Laravel flash消息
我有一个问题。我正在用Laravel构建一个应用程序,在我上传图片的页面上,我需要一条flash成功消息,上面写着你成功上传了新图片。当我上传时,它会工作,显示flash消息,但当我刷新或转到其他页面时,消息仍然保留在那里。然后在再次刷新之后,它消失了。在其他页面(如创建新帖子)上,flash消息正常工作,刷新后不会显示,也不会转到其他页面。我使用imageintervention.ioapi上传图像,之所以提到它,是因为我不想让您对代码感到困惑Php 刷新后显示Laravel flash消息,php,twitter-bootstrap,laravel,laravel-5,flash-message,Php,Twitter Bootstrap,Laravel,Laravel 5,Flash Message,我有一个问题。我正在用Laravel构建一个应用程序,在我上传图片的页面上,我需要一条flash成功消息,上面写着你成功上传了新图片。当我上传时,它会工作,显示flash消息,但当我刷新或转到其他页面时,消息仍然保留在那里。然后在再次刷新之后,它消失了。在其他页面(如创建新帖子)上,flash消息正常工作,刷新后不会显示,也不会转到其他页面。我使用imageintervention.ioapi上传图像,之所以提到它,是因为我不想让您对代码感到困惑 public function update_a
public function update_avatar(Request $request)
{
// Handle the upload of avatar
if ($request->hasFile('avatar'))
{
$avatar = $request->file('avatar');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300, 300)->save( public_path('/uploads/avatars/' . $filename ) );
$user = Auth::user();
$user->avatar = $filename;
$user->save();
Session::flash('success', 'You have successfully uploaded new picture!');
}
return view('pages.profile', array('user' => Auth::user()) );
}
这样做之后,不应该返回视图。您应该返回一个重定向到GET路由,在那里您将显示该视图(view-pages.profile)。这是POST重定向获取流 闪存数据仅在下一次请求时可用。您在显示视图的同一请求中闪烁。这就是为什么刷新会显示flash消息,因为刷新会导致一个新的请求,这是下一个请求 你真的不应该有一个单一的方法来处理表单和显示视图,因为它会导致混乱 有一种方法可以执行重定向到显示视图的路由的处理。您可以同时闪烁和重定向
return redirect()->route(...)->with('success', ....);
谢谢,我以后会考虑的。:)