【问题标题】:PhpStorm autocomplete with \Nwidart\ModulesPhpStorm 使用 \Nwidart\Modules 自动完成
【发布时间】:2020-10-24 11:03:33
【问题描述】:

问题是我使用的是 PhpStorm IDE。 Laravel 项目由 nwidart/laravel-modules 管理。

但是,PhpStorm 不处理基本的 Laravel 功能。例如:findorfail(),对于自己的模型:

在 \Modules\Companies\Models\Companies_adresses 中找不到方法“findorfail”

我执行了以下操作来启用自动完成功能:

这很令人困惑,因为它没有正确给出提示。它没有列出数据库列等... PHPDoc仍然浮现在脑海中,但我不知道如何开始!

你没有想法吗?我感到完全迷失了:(

【问题讨论】:

  • 如果你按下 CTRL 并点击类名,会发生什么?您应该被重定向到类代码。这甚至会发生吗?你能在里面看到findorfail()吗?

标签: laravel phpstorm laravel-models


【解决方案1】:

我设置了 Laravel IDE Helper,但我必须将以下内容添加到我的所有模型中……或者您可以添加到一个新的 Model 类,然后将其扩展到所有模型。无论哪种方式,这都会让 PHPStorm 正确读取类似的外观方法:

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;

/**
 * Class Employee
 *
 * @mixin Builder
 */
class Employee extends Model
{
    // blah blah blah
}

确保 PHPDoc 与您的模型相匹配。关键是@mixin 行,它为 PHP Storm 提供了与模型的所有外观方法的连接。您仍然需要 IDE Helper。但是有了这个 PHPStorm 会在你输入时提出建议,并允许你控制单击以从项目的其他地方查看方法本身。

【讨论】:

    【解决方案2】:

    您还可以使用 Laravel Idea 插件生成高级 ide 帮助代码。主菜单 > 代码 > Laravel Idea 代码生成 > 生成 Eloquent Helper 代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多