讨论数量:
编辑器无法解析出auth::user()返回的是user模型,所以会显示你调用了未定义的方法。解决办法:将auth::user()放到getUser方法里面,然后在注释的@returen告诉编辑器可能返回user。或者保存到一个user变量,然后用行内注释,给$user添加User类型
/* @var User $user*/这样就行了
这个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
。
原因是类型无法识别
/* @var User $user*/
$user = Auth::user();
$user->todoes()->create(...);
另外解决这个问题后,编辑器如果开了拼写检查插件的话,可能在 todoes
这里还会有提示拼写问题,应该是 todos
如图的三种写法都可以