Laravel auth()->user()->posts()->create($data); > 未定义的方法'post'.intelephense(1013)

Posted

技术标签:

【中文标题】Laravel auth()->user()->posts()->create($data); > 未定义的方法\'post\'.intelephense(1013)【英文标题】:Laravel auth()->user()->posts()->create($data); > Undefined method 'post'.intelephense(1013)Laravel auth()->user()->posts()->create($data); > 未定义的方法'post'.intelephense(1013) 【发布时间】:2021-09-15 01:12:55 【问题描述】:

我已经学习了 2 个小时的教程,但现在我遇到了问题。本教程使用的是旧版本的 Laravel。我正在创建 Instagram 克隆,并想创建帖子。

web.php

Route::post('/p', 'PostsController@store');

PostsController

public function store()

    $data = request()->validate([
        'caption' => 'required',
        'image' => ['required', 'image'],
    ]);
    
    /* I got an error at this line saying undefined method post() */
    auth()->user()->posts()->create($data);

用户模型

public function posts()

    return $this->hasMany(Post::class)
        ->orderBy('created_at', 'DESC');

【问题讨论】:

【参考方案1】:

您应该将posts() 方法放在User 模型中,而不是UserController

【讨论】:

我的错我打算写用户而不是用户控制器。我现在纠正了这个问题,但不幸的是它不起作用【参考方案2】:

这似乎是由 Intellephense 引起的常见问题。 似乎在这里得到了回答: https://***.com/a/59266972/14440607

本质上,IDE 助手会生成代码来帮助您的 IDE 提供准确的建议。 https://github.com/barryvdh/laravel-ide-helper

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review

以上是关于Laravel auth()->user()->posts()->create($data); > 未定义的方法'post'.intelephense(1013)的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Auth::user() 关系

NON Auth::User ID 的 Laravel 回显

在 Laravel 4 中使用 Auth::User()->user_group->name 打印用户组名称

Laravel Auth::user()->id 在 livewire 表单上返回 null

Laravel API Passport:从数组中获取 1 个参数:Auth::user()->token()

Laravel 5.8:如何在 Global Scope 的 apply 方法中解析 auth()->user()?