Автозаполнение PhpStorm с \Nwidart\Modules

Проблема в том, что я использую PhpStorm IDE. Проект Laravel управляется nwidart/laravel-modules.

Однако PhpStorm не поддерживает основные функции Laravel. Например: findorfail(), для собственных моделей:

Метод 'findorfail' не найден в \Modules\Companies\Models\Companies_addresses

пример изображения

Я сделал следующее, чтобы включить автозаполнение:

Это очень сбивает с толку, потому что не дает подсказок правильно. Он не перечисляет столбцы базы данных и т. д. На ум все же пришел PHPDoc, но я не знаю, с чего начать!

У вас нет идей? Я чувствую себя полностью потерянным :(


person Cappsy    schedule 03.07.2020    source источник
comment
Что произойдет, если вы нажмете CTRL и щелкните имя класса? Вы должны быть перенаправлены на код класса. Такое вообще бывает? Вы видите там findorfail()?   -  person noam    schedule 03.07.2020


Ответы (2)


Я настроил Laravel IDE Helper, но мне пришлось добавить следующее во все мои модели... или вы можете добавить в новый класс модели, который затем распространите на все свои модели. В любом случае, это заставит 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. Но с этим PHPStorm будет предлагать по мере ввода и позволит вам щелкнуть, удерживая клавишу Control, чтобы просмотреть сам метод из другого места вашего проекта.

person dhnwebpro    schedule 03.07.2020

Вы также можете сгенерировать расширенный вспомогательный код ide с помощью плагина Laravel Idea. главное меню › Код › Генерация кода Laravel Idea › Генерация кода Eloquent Helper.

person Adelf    schedule 27.07.2020