一对多问题,请问这是哪里出错了?

laravel 9,代码实际可以运行,数据库有数据,但是编辑器显示有错误?

这是怎么回事呢?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
DogLoML
最佳答案

如图的三种写法都可以

file

file

file

1年前 评论
facetoface (楼主) 1年前
讨论数量: 16
DogLoML

编辑器无法解析出 auth::user () 返回的是 user 模型,所以会显示你调用了未定义的方法。解决办法:将 auth::user()放到 getUser 方法里面,然后在注释的 @returen 告诉编辑器可能返回 user。或者保存到一个 user 变量,然后用行内注释,给 $user 添加 User 类型
/* @var User $user*/ 这样就行了

1年前 评论
facetoface (楼主) 1年前
facetoface (楼主) 1年前
facetoface (楼主) 1年前

没有任何错误,可以执行,数据库里面有数据,创建成功了,但是编辑器这里有个波浪符号,不知道为啥会这样

1年前 评论
Epona 1年前
facetoface (作者) (楼主) 1年前

这个 IDE 报错你的代码没关系,目测使用的是 VSCODE,建议换 PHPStorm。

因为 Auth::user() 最终指向的类文件是 your_project/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php,IDE 并不知道框架使用了 Provider 将最终的用户模型指向了 Model\User.php,如果不想换 IDE 建议安装 Laravel idea 之类的插件试试,或者按照楼上的方法说的,定义一个方法,然后指定返回类型为 Models\User.php

1年前 评论
facetoface (楼主) 1年前
facetoface (楼主) 1年前
facetoface (楼主) 1年前
MArtian (作者) 1年前
DogLoML

如图的三种写法都可以

file

file

file

1年前 评论
facetoface (楼主) 1年前

原因是类型无法识别

/* @var User $user*/
$user = Auth::user();
$user->todoes()->create(...);

另外解决这个问题后,编辑器如果开了拼写检查插件的话,可能在 todoes 这里还会有提示拼写问题,应该是 todos

1年前 评论
facetoface (楼主) 1年前