【问题标题】:PhpStorm method not found in class在类中找不到 PhpStorm 方法
【发布时间】:2017-10-12 15:54:53
【问题描述】:

我正在使用 Laravel 5.5 开发一个项目,我正在使用 PhpStorm 作为 IDE,但它显示了我

“在 \Illuminate\Support\Facades\DB 中找不到方法‘表’...”
“在主题类中找不到引用的方法。”

代码运行良好,但仍想知道完美的语法。

【问题讨论】:

标签: php laravel laravel-5 phpstorm laravel-5.5


【解决方案1】:

即使您安装了 barryvdh/laravel-ide-helper,问题仍然存在,如果您查看 /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php,有一个快速解决此问题的方法类并添加这个 PhpDoc

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

PhpStorm 现在可以识别所有模型的所有查询构建方法

【讨论】:

  • 在 laravel .5.5.40 和 barryvdh/laravel-ide-helper ^2.4 中不起作用。
  • 这应该被标记为答案。虽然编辑作曲家安装的文件并不干净,并且它将在下一个版本中恢复,但它确实有效!谢谢@Alejandro!
  • 看起来您也可以将/** * @mixin \Eloquent */ 添加到每个模型 PhpDoc 中,效果相同。这就是我要走的路。
【解决方案2】:

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

composer require barryvdh/laravel-ide-helper

config/app.php注册

使用它来生成外观文档

php artisan ide-helper:generate

【讨论】:

  • 不要停下来为 PHPStorm 生成,也要使用 ide-helper:meta。
  • 另外,还需要安装一个 Laravel 插件。最好的方法是遵循confluence.jetbrains.com/display/PhpStorm/… 指南。
  • 我遇到了这个问题,我已经查看了所有内容并尝试了许多不同的方法。这个答案,加上php artisan ide-helper:models --write 终于摆脱了错误的错误。只是作曲家命令和两个工匠为我做的:-)
【解决方案3】:

您的问题已在此处提及: https://github.com/laravel/framework/issues/9162

这是5.0.33更新后的问题。

在您的代码中直接尝试:

\DB::table('...')->get();

【讨论】:

    【解决方案4】:

    要为 ide 启用助手,如果我们使用 query() 方法,添加“User::query()”很重要,那么 ide 不会给出这样的警告,这是轻松找到 eloquent 功能的最佳方法。

    如果没有 ::query(),我们无法分析后面的函数,例如“where, with, all, get”是否被识别。

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2016-03-08
      • 2013-11-27
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      相关资源
      最近更新 更多