Laravel Auth :: user()没有用户模型函数的代码完成

时间:2017-07-05 20:53:26

标签: laravel authentication model code-completion

我正在使用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

3 个答案:

答案 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.phpphp 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 文件,我看到:

enter image description here

这会导致不需要的类型提示:

enter image description here

enter image description here

最终结果是,即使使用了 ide-helper,我仍然看到 OP 描述的完成问题。

这里提出的解决方案解决了很多相关的问题(ide-helper 包是天赐之物),但我仍然有 OP 的问题,提供的答案没有帮助。