gpt4 book ai didi

php - 刷新后显示的 Laravel 闪存消息

转载 作者:可可西里 更新时间:2023-11-01 00:00:03 26 4
gpt4 key购买 nike

我有一个问题。我正在使用 Laravel 构建一个应用程序,在我上传图片的页面上,我需要一条快速成功消息,表明您已成功上传新图片。当我上传时,它可以工作,显示闪现消息,但是当我刷新或转到其他页面时,该消息仍然存在。然后在另一次刷新后它消失了。在创建新帖子等其他页面上,Flash 消息正常工作,不会在刷新后显示或转到另一个页面。我正在使用 imageintervention.io api 上传图片,我提到它是因为我不想让你对代码感到困惑。

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()) );

}

最佳答案

你不应该在你这样做之后返回一个 View 。您应该将重定向返回到 GET 路由,您将在其中显示该 View ( View - pages.profile)。这是 POST 重定向 GET 流程。

闪存数据仅在 NEXT 请求时可用。您在显示 View 的同一请求中闪烁。这就是刷新然后显示闪现消息的原因,因为刷新导致了新请求,即下一个请求。

您真的不应该使用一种方法来处理表单和显示 View ,因为这会导致混淆。

有一个方法可以执行重定向到显示 View 的路由的处理。您可以同时闪烁和重定向。

return redirect()->route(...)->with('success', ....);

关于php - 刷新后显示的 Laravel 闪存消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37800744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com