Laravel auth()->user->posts()->create($data); > Undefined property 将上述内容翻译成中文如下: Laravel auth()->user->posts()->create($data); > 未定义的属性

5 浏览
0 Comments

Laravel auth()->user->posts()->create($data); > Undefined property 将上述内容翻译成中文如下: Laravel auth()->user->posts()->create($data); > 未定义的属性

我是一个后端开发的新手,所以我在互联网上做了很多教程,以便熟悉这个领域。

目前我正在尝试做一个关于Instagram克隆的2年前的教程,所以我在更新和运行我的代码时,同时参考了当前版本的laravel文档。

我想要创建帖子,我的web.php路由如下:

Route::post('/post', [App\Http\Controllers\PostsController::class, 'store']);

我的PostController.php中的store函数如下:

    public function store()
    {
        $data = request()->validate([
           'caption' => 'required',
           'image' => 'required|image' 
        ]);
        auth()->user()->posts()->create($data);
        Post::create($data);
        dd(request()->all());
    }

在User.php中,我还定义了以下内容:

    public function posts()
    {
        return $this->hasMany(Post::class);
    }

它一直告诉我“未定义的方法'posts'。intelephense(1013)

我已经搜索并找到了类似问题的解决方法,但是我无法修复它,我想知道是否只是另一种不同版本的问题。

我会非常感激任何帮助。

谢谢!我正在尝试使post命令工作,在跟随教程的过程中,它给了我一个函数未定义的错误。

0
0 Comments

问题的原因是Laravel中的auth()->user->posts()->create($data)方法无法找到属性posts。解决方法是检查编辑器是否正确识别该属性,具体可以参考链接https://laracasts.com/discuss/channels/laravel/undefined-method-documentationsintelephense1013。

可能确实是这个问题,我会检查一下,看看PHPStorm是否能更好地处理它。谢谢你的回复和链接。

0