PhpStorm和Laravel自动完成

3
我决定在我的新Laravel项目中使用PhpStorm,所以我想要一些自动补全功能。我已经阅读了https://blog.jetbrains.com/phpstorm/2015/01/laravel-development-using-phpstorm/的指南,其中有一些很好用的内容,但是我遇到了一个问题。
我想测试我的数据库连接,所以我只是写了一个简单的index()函数,像这样:
if(DB::connection()->getDatabaseName()) {
    echo 'Connected to ' . DB::connection()->getDatabaseName();
}

这个功能运行良好,但当我输入DB并按下Tab时,我会写出\DB::而不是DB::。然后我包括use Illuminate\Support\Facades\DB;DB::就可以使用了。但是当我添加facade时,自动完成完全不同,并且无法找到方法,但它们确实起作用。这真的很烦人。

其他人也遇到了这个问题,有解决方案吗?

4个回答

13
在PhpStorm中,转到“设置” => “插件”
  • 搜索laravel并安装。
然后添加此软件包:

composer require barryvdh/laravel-ide-helper

您可以在此软件包的github页面上找到更多帮助:https://github.com/barryvdh/laravel-ide-helper

8

首先,在PhpStorm中安装Laravel插件,然后安装laravel-ide-helper。 之后,为您的项目生成ide-helper

php artisan ide-helper:generate
php artisan ide-helper:meta

为了正确的自动完成模型,您必须确定此模型 使用(模型名称空间)

除非我使用facade中的一个,否则在DB之前仍会添加反斜杠。但是,如果我使用'use Illuminate\Support\Facades\DB',那么自动完成就不会起作用。可以像代码中一样在标签中使用DB::connection吗?(代码中有效) - Kevin Steen Hansen
为此,您必须编写用法(use DB)。在此之后,在标签中使用DB :: connection(我在我的Storm中尝试过:)) - Odin Thunder
Strom必须识别模型,然后加载自动完成数据(该模型的方法、变量和常量)。 - Odin Thunder

2

已经完成了。我已将其添加为服务提供者,然后运行了ide-helper:generate,但问题仍未解决。 - Kevin Steen Hansen
_ide-helper.php 文件出现在项目根目录了吗?应该是这样的。你的文件顶部也应该有以下代码: use Illuminate\Support\Facades\DB; 你可能还希望安装名为 Laravel 的 phpstorm 插件,它也会有所帮助。 - arku

-2
搞定了 :) 只需将 DB 添加到您的类中,问题就解决了。
use DB;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接