我如何向 PhpStorm 提供提示以找到我的 Laravel 自定义查询构建器方法?

How can I provide hints to PhpStorm to find my Laravel custom query builder methods?

我在 Laravel 中使用自定义 query builders,如下所示:

class MyModel extends Model {
 public function newEloquentBuilder($query): MyModelQueryBuilder
    {
        return new MyModelQueryBuilder($query);
    }
}
class MyModelQueryBuilder extends Illuminate\Database\Eloquent\Builder {
  // various query methods...
}

由于 Laravel 的所谓 Facades 和魔术方法的使用,PhpStorm 无法在我的自定义查询构建器中找到对这些方法的引用。

我使用 barryvdh/laravel-ide-helper 包为我的模型生成提示,因此它们的方法是可找到和可提示的。我怎样才能以一种简单、可维护的方式为我的查询构建器做同样的事情 类?

例如,我希望能够在使用查询构建器方法时按下 Command-B,并获取该方法的用户列表,例如,就像我可以使用其他完全交叉引用的 类.

您现在需要使用 unofficial @mixin PHPDoc directive. PhpStorm has had support for it for a few years 将 class 方法添加到模型中。特征可能是在多个模型上执行此操作的最简单方法:

/**
 * @mixin MyModelQueryBuilder
 */

trait HasCustomBuilder {

    public function newEloquentBuilder($query): MyModelQueryBuilder
    {
        return new MyModelQueryBuilder($query);
    }
}
class MyModel extends Model {
    use HasCustomBuilder;
}