PHPStorm自动完成不与Laravel 5一起使用

时间:2015-06-09 23:25:22

标签: php laravel phpstorm

我使用PHP Storm v8.0.3和最新版本的Laravel。

我无法完成自动完成工作。

enter image description here

如上图所示。

我已按照他在git上提供的自述文件安装了barryvdh ide-helper。我在安装过程中没有收到任何错误。

enter image description here

我已将其作为

包含在providers数组中

'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider'

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider:class

它没有任何区别(据我所知)。

我还安装了Laravel插件。

再次,没有区别,仍然没有自动完成。

enter image description here

我尝试转储配置文件导致:

array:27 [▼
 ...
  22 => "Illuminate\View\ViewServiceProvider"
  23 => "Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider"
  24 => "App\Providers\AppServiceProvider"
 ...
]

我真的坚持这个。我不知道会出现什么问题。任何朝着正确方向的推动都非常感激。

4 个答案:

答案 0 :(得分:10)

对此有两种可能的解决方法:

  1. 让你的模特扩展\ Eloquent facade而不是 照亮\数据库\口才\型号。
  2. 如果您愿意继续使用 "型号"外观,你可以在config / app.php中创建自己的别名, 然后改变#eloquent"到"模型"在config / ide-helper.php下 额外。这将让ide-helper包含所有方法 照亮\数据库\ Eloquent \ Builder和 Illuminate \ Database \ Query \ Builder这是缺少方法的地方 实际上活着。
  3. (资料来源:https://laracasts.com/discuss/channels/general-discussion/phpstorm-thinks-modelwhere-doesnt-exist-on-model-l5/replies/37661

答案 1 :(得分:3)

这篇文章让我选择了PHPStorm 2016.1.2,但它比它大一年了,所以我想它可以用于旧版本。

https://blog.jetbrains.com/phpstorm/2015/01/laravel-development-using-phpstorm/

可能缺少的唯一细节,我在插件GitHub链接上找到了它们:

  

更新作曲家后,将服务提供商添加到config/app.php中的Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,数组中   php artisan ide-helper:generate

     

class RemoteControlService extends NotificationListenerService implements RemoteController.OnClientUpdateListener

     

注意:必须首先清除bootstrap / compiled.php,所以在生成之前运行php artisan clear-compiled(以及之后的php artisan optimize)。

     

来源: https://github.com/barryvdh/laravel-ide-helper

答案 2 :(得分:2)

除了IDE Helper之外,您还必须在PHPStorm中启用每个项目的Laravel插件。

  1. 打开偏好设置。
  2. 导航至Laravel Plugin
  3. 检查Enable plugin for this project

答案 3 :(得分:0)

我尝试了所有的答案,但在我为模型自动填充doctrine/dbal后,代码自动完成开始工作,因为模型的自动phpDocs添加了@mixin \Eloquent,这样就可以了;)

步骤进行:

https://github.com/barryvdh/laravel-ide-helper

Require this package with composer using the following command:
composer require barryvdh/laravel-ide-helper

After updating composer, add the service provider to the providers array in config/app.php
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

php artisan clear-compiled
php artisan ide-helper:generate
php artisan optimize

You can configure your composer.json to do this after each commit:

"scripts":{
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan ide-helper:generate",
        "php artisan ide-helper:meta",
        "php artisan optimize"
    ]
},


composer require doctrine/dbal

php artisan ide-helper:models