Estoy usando generadores de consultas personalizados en Laravel como este:
class MyModel extends Model { public function newEloquentBuilder($query): MyModelQueryBuilder { return new MyModelQueryBuilder($query); } } class MyModelQueryBuilder extends Illuminate\Database\Eloquent\Builder { // various query methods... }Debido a las llamadas fachadas de Laravel y al uso de métodos mágicos, PhpStorm no puede encontrar referencias a los métodos en mi generador de consultas personalizadas.
Utilizo el paquete barryvdh/laravel-ide-helper para generar sugerencias para mis modelos, por lo que sus métodos se pueden encontrar e identificar. ¿Cómo puedo hacer lo mismo de una manera fácil y fácil de mantener para mis clases de creación de consultas?
Por ejemplo, me gustaría poder presionar Comando-B mientras estoy en un método de generación de consultas y obtener la lista de usuarios de ese método, por ejemplo, como puedo con otras clases con referencias cruzadas completas.
Deberá agregar los métodos de clase al modelo utilizando la directiva no oficial @mixin PHPDoc. PhpStorm ha tenido soporte desde hace algunos años . Un rasgo es probablemente la forma más fácil de hacer esto en varios modelos:
/** * @mixin MyModelQueryBuilder */ trait HasCustomBuilder { public function newEloquentBuilder($query): MyModelQueryBuilder { return new MyModelQueryBuilder($query); } } class MyModel extends Model { use HasCustomBuilder; }