laravel – 为什么我的IDE不能自动完成findOrFail方法?

所以我创建了一个Message模型:

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.

想知道流明中的某些东西是否指向基础模型类的更精简版本.但同样奇怪的是,当我运行它时,这种方法运行得很好 – 它只是IDE似乎并不知道它.

enter image description here

更新

感谢@ joseph-silber关于Laravel plugin for PHPStorm的提示.我刚发现并安装了它.我没有立即看到任何可以在那里启用docblock生成的设置.

enter image description here

在Laravel插件页面的注释中,它提到了“Laravel IDE Helper Generator”.我搜索了一下,发现了我安装的Laravel plugin by Haehnchen.

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

enter image description here

最佳答案
因为模型类没有findOrFail方法.

它仅在构建器上可用,它从模型的catch-all __call方法调用.

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

转载注明原文:laravel – 为什么我的IDE不能自动完成findOrFail方法? - 代码日志