【问题标题】:Why isn't my IDE auto-completing the findOrFail method?为什么我的 IDE 没有自动完成 findOrFail 方法?
【发布时间】:2015-11-17 01:54:38
【问题描述】:

所以我创建了一个消息模型:

namespace App\Model;

use Illuminate\Database\Eloquent\Model;

class Message extends Model
{
    public function getName()
    {
        return $this->name;
    }

    public function setSortOrder($sortOrder)
    {
        $this->sort_order = $sortOrder;
        return $this;
    }
}

而且它似乎工作得很好 - 我使用迁移创建了一些列,加载并保存了模型。

但我的 IDE (PHP Storm) 似乎无法识别模型上的某些方法 - 即 findOrFail。它会自动完成findOrNew

想知道 lumen 中的某些东西是否指向基本模型类的更精简版本。但同样奇怪的是,当我运行这个方法时,它工作得很好——只是 IDE 似乎没有意识到它。

更新

感谢@joseph-silber 提供有关Laravel plugin for PHPStorm 的提示。我刚刚找到并安装了它。我没有立即看到任何可以在其中启用 docblock 生成的设置。

在 Laravel 插件页面的注释中,它提到了“Laravel IDE Helper Generator”。我对此进行了搜索,并找到了我安装的这个Laravel plugin by Haehnchen

这将ide-helper:models 选项添加到我的工匠命令列表以及其他一些命令列表中。我运行了它,它确实在 docblock 中生成了一些方法,但不是全部。

【问题讨论】:

标签: laravel lumen


【解决方案1】:

因为模型类没有findOrFail 方法。

它仅在构建器上可用,它从模型的包罗万象的__call 方法中调用。


如果您希望 PHP Storm 帮助您,请尝试使用 Laravel plugin 生成 IDE 类。

【讨论】:

  • 我安装了那个插件以及它引用的另一个插件 - 仍然没有运气 - 发布了一些细节作为对我原来问题的更新。再次感谢您的帮助。
  • @kalenjordan - 是的。这些插件还没有更新到 5.1。
  • 作为一种解决方法,phpStorm 可以选择如果类中存在 __magic 方法,则降低严重性。 Check my answer here
【解决方案2】:

使用 query() 方法,你有 IDE 自动完成 User::query()->findOrFail(...) 相当于 User::findOrFail(...) 但在 st-bnv 中具有 Laravel 方法的自动完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2022-10-16
    • 2012-04-04
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多