【问题标题】:Laravel - HTTP Session Flash Data dont workLaravel - HTTP 会话 Flash 数据不起作用
【发布时间】:2022-07-08 02:24:58
【问题描述】:

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 抛出错误如下所示: error in flash

对这个错误有什么帮助?

【问题讨论】:

  • 别忘了添加使用Session;到您的控制器。或使用 Illuminate\Support\Facades\Session;
  • 我添加了它'但仍然无法正常工作
  • 不要认为它使用 Session 类
  • 你可以使用会话助手:session()->flash('status', 'Task was successful!') 或者你可以return redirect()->route('posts.show', $post)->with('status', 'Task was successful!');

标签: php laravel flash


【解决方案1】:

一些事情可以解决您的问题并稍微清理一下。 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!');
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2016-06-03
    • 2017-12-21
    • 1970-01-01
    • 2015-06-03
    • 2017-02-27
    • 2018-07-02
    相关资源
    最近更新 更多