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

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

这是怎么回事呢?

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

如图的三种写法都可以

file

file

file

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

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

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

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

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

这个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

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

如图的三种写法都可以

file

file

file

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

原因是类型无法识别

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

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!