Метод PhpStorm не найден в классе

Я работаю над проектом, используя Laravel 5.5, и я использую PhpStorm в качестве IDE, но он показывает мне

"Таблица методов не найдена в \Illuminate\Support\Facades\DB..."
"Указанный метод не найден в предметном классе.."

Однако код работает отлично, но все же хочется знать идеальный синтаксис.


person Abdullahi    schedule 12.10.2017    source источник
comment
помощник по IDE может оказаться полезным   -  person apokryfos    schedule 12.10.2017
comment
Также: laracasts.com/series/how-to- be-awesome-in-phpstorm/episodes/15 буквально для этой темы   -  person apokryfos    schedule 12.10.2017
comment
Такая же ошибка даже при использовании помощника IDE   -  person Mirko    schedule 16.02.2018


Ответы (4)


даже если вы установите barryvdh/laravel-ide-helper, проблема не исчезнет, ​​​​есть быстрое решение этой проблемы, если вы посмотрите в класс /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php и добавьте этот PhpDoc

/**
 * @mixin \Eloquent
 * @mixin \Illuminate\Database\Eloquent\Builder
 */

Теперь PhpStorm распознает все методы построения запросов для всех ваших моделей.

person Alejandro Sulbaran    schedule 03.12.2017
comment
в laravel .5.5.40 и barryvdh/laravel-ide-helper ^2.4 это не работает. - person sadalsuud; 17.05.2018
comment
Это должно быть помечено как ответ. Хотя редактировать установленные файлы композитора не совсем чисто, и это вернется в следующем выпуске, это работает! Спасибо @Алехандро! - person jacobfogg; 26.03.2019
comment
Похоже, вы также можете просто добавить /** * @mixin \Eloquent */ к каждому из ваших Model PhpDoc с тем же эффектом. Я иду по этому пути. - person jacobfogg; 26.03.2019

Установите https://github.com/barryvdh/laravel-ide-helper.

composer require barryvdh/laravel-ide-helper

зарегистрируйте его в config/app.php

используйте его для создания фасадного документа

php artisan ide-helper:generate
person Oskyk    schedule 12.10.2017
comment
Не останавливайтесь на генерации для PHPStorm, используйте также ide-helper:meta. - person Devon; 12.10.2017
comment
Кроме того, есть плагин Laravel, который также необходимо установить. Лучше всего следовать confluence.jetbrains.com/display/PhpStorm/ руководство. - person Vlad Luchansky; 12.10.2017
comment
У меня была эта проблема, и я просмотрел все и попробовал много разных вещей. Этот ответ в сочетании с php artisan ide-helper:models --write наконец-то избавил от ложных ошибок. За меня это сделали только команда композитора и два ремесленника :-) - person Quin; 10.03.2021

Ваша проблема уже упоминалась здесь: https://github.com/laravel/framework/issues/9162

Это проблема после обновления 5.0.33.

Попробуйте прямо в своем коде:

\DB::table('...')->get();
person Charlotte    schedule 12.10.2017

Чтобы включить помощники для ide, важно добавить User::query(), если мы используем метод query(), тогда ide не будет выдавать такие предупреждения, это лучший способ легко найти красноречивую функцию.

Без ::query() мы не можем анализировать последующие функции, например, где, со всеми, распознаются или нет.

person hemant kumawat    schedule 08.03.2021