我在 Laravel 中使用自定義查詢構建器,如下所示:
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,并獲取該方法的用戶串列,例如,我可以使用其他完全交叉參考的類。
uj5u.com熱心網友回復:
您需要使用非官方的 @mixinPHPDoc 指令將類方法添加到模型中。PhpStorm 已經支持它幾年了。特征可能是在多個模型上執行此操作的最簡單方法:
/**
* @mixin MyModelQueryBuilder
*/
trait HasCustomBuilder {
public function newEloquentBuilder($query): MyModelQueryBuilder
{
return new MyModelQueryBuilder($query);
}
}
class MyModel extends Model {
use HasCustomBuilder;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382286.html
