我正在使用Laravel和PHPStorm。
当我使用Auth::user()
调用时,自动完成功能适用于所有型号,而不适用于用户'
当我调用Auth::user()
时,我获得了正确的用户对象,但Auth::user()
的返回类型为Authenticatable
而不是User
。所以我的用户对象没有代码完成,这非常烦人,因为我经常使用它。我认为问题与Auth::user()
的返回类型有关,因为它是Authenticatable
而不是User
。
在config/auth.php
我已将模型设置为app/User::class
。
您能告诉我如何将返回值强制转换为用户模型吗?
在此example中,您可以看到行为。
解决:
使用laravel-ide-helper软件包的解决方案非常有效! https://github.com/barryvdh/laravel-ide-helper
答案 0 :(得分:2)
将laravel-ide-helper包添加到您的项目中 - https://github.com/barryvdh/laravel-ide-helper。
该软件包为IDE生成一个包含所有Facade及其功能的帮助文件。
它修复了Facades自动完成功能,因此1
也修复了
答案 1 :(得分:1)
powershell -NonI -NoP -Command "(New-Object -com Shell.Application).NameSpace('directoryfile').ParseName('programname').InvokeVerb('taskbarpin')"
Auth是config / app.php中ServiceProviders数组的别名,如果你直接使用Auth::user()
,你将在PHPstorm和Sublime中得到很好的完成,但这取决于IDE。
答案 2 :(得分:1)
我知道这是一篇旧帖子,但我仍然看到这个问题,尽管使用了 ide-helper。
在我的 Laravel 应用程序中,Eloquent 模型 App\User
设置为 /config/auth.php 中的“User Providers”:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
我刚刚通过运行以下命令重建了文件 _ide_helper.php
:
php artisan ide-helper:generate
这就是我看到的 Auth()::user()
* Get the currently authenticated user.
*
* @return \App\User|null \\this is desired
* @static
*/
public static function user()
{
/** @var \Illuminate\Auth\SessionGuard $instance */
return $instance->user();
}
查看 _ide_helper.php
文件,我看到:
这会导致不需要的类型提示:
最终结果是,即使使用了 ide-helper,我仍然看到 OP 描述的完成问题。
这里提出的解决方案解决了很多相关的问题(ide-helper 包是天赐之物),但我仍然有 OP 的问题,提供的答案没有帮助。