PhpStorm无法识别方法

时间:2017-03-04 21:43:44

标签: php laravel laravel-5 ide phpstorm

所以这已被问过几次,但我还没有找到一个有效的答案。

我正在使用PhpStorm - 2016.3.2和Laravel 5.4

enter image description here

我尝试过使用https://github.com/barryvdh/laravel-ide-helper以及用于PhpStorm的Laravel插件。

我尝试检查选项“降级严重程度if_magic方法在课堂上” - 这不起作用。

我唯一能解决这个问题的方法就是完全关闭未定义方法的警告,但是转换这样的功能会破坏使用IDE的目的。

有没有人找到解决这个问题的方法?

来源:

https://laracasts.com/series/how-to-be-awesome-in-phpstorm/episodes/15

https://laracasts.com/discuss/channels/general-discussion/why-does-phpstorm-not-recognise-all-the-classes?page=1

PhpStorm laravel 5 method not found

https://github.com/barryvdh/laravel-ide-helper

2 个答案:

答案 0 :(得分:4)

PHPDoc块可以派上用场。

您可以在函数返回$ query 之前添加此PHP注释

/** @var $query \Illuminate\Database\Query\Builder */

通过这种方式,PHPStorm将正确识别方法

答案 1 :(得分:2)

发生这种情况的原因是因为PHPStorm并不知道该变量是什么意思(它与Laravel无关)。至于PHPStorm知道它只是方法的一个参数。

正如@LazyOne建议的那样,你可以输入提示变量,例如。

public function scopeIncomplete(Builder $query)

然后在课程顶部添加以下use语句

use Illuminate\Database\Eloquent\Builder;

或者,如果您正在使用OS X(我不确定Windows或Linux的快捷方式),您可以在Builder引用中移动插入符然后点击{{1导入类。

希望这有帮助!