簡體   English   中英

Laravel - HTTP 會話 Flash 數據不起作用

[英]Laravel - HTTP Session Flash Data dont work

Laravel 文檔:

有時您可能希望將項目存儲在會話中以供下一個請求。 您可以使用 flash 方法執行此操作。

$request->session()->flash('status', 'Task was successful!');

我的代碼:

 public function store(StorePost $request)
    {
        $validated = $request->validate();

        $post = new Posts();
        $post->title = $validated['title'];
        $post->content = $validated['content'];

        $post->save();

        $request->session()->flash('status', 'Task was successful!');

        return redirect()->route('posts.show', [$post->id]);
    }

我的 IDE vscode 拋出錯誤如下所示:閃存中的錯誤

對這個錯誤有幫助嗎?

有幾件事可以解決您的問題並稍微清理一下。 Laravel 命名模型的約定是使用表的單數名稱。 如果您有一個名為 posts 的表,則模型的名稱應該是 Post。 其次,您不需要驗證數據的臨時變量,只需將其內聯即可。 最后,您可以在重定向上使用with來刷新會話數據:

    public function store(StorePost $request)
    {
        $post = Posts::create([
            'title'   => $request->validated('title'),
            'content' => $request->validated('content')
        ]);

        return redirect()->route('posts.show', $post)
            ->with('status', 'Task was successful!');
    }

您是否包含以下命名空間

use Session;

如果不使用“會話”命名空間

你也可以嘗試另一種方式

public function store(StorePost $request)
    {
        $validated = $request->validate();

        $post = new Posts();
        $post->title = $validated['title'];
        $post->content = $validated['content'];

        $post->save();

        return redirect()->route('posts.show', [$post->id])->with('status','Task was successful!');
    }

它將創建一個 RedirectResponse 實例並以單一、流暢的方法將數據閃存到會話中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM