首先,我有IDE助手,以及php storm插件。我也试过了Gist预制作。有一些类似的问题,但似乎没有人得到答案。如果我在这里没有得到任何东西,我可能会戳一些laracasts和ide帮助bug列表。
所以我跟着一些进入laracasts,并且这个人继续使用我所知道的未定义的方法。情况:
我创建了一个名为Article的雄辩模型。它扩展了
Illuminate\Database\Eloquent\Model
所以现在我有App \ Article,我可以调用任何可用的模型方法。例如:
$article = \App\Article::all();
PHPStorm很高兴。他不断提取::find()
或::findOrFail()
它位于docs
我只是不知道它是如何工作的,我没有看到模型中定义的方法。如果这是ide helper应该修复的,那么我不确定它是否正常工作。我可以RTFM,我很确定我按照指示去了发球台。
答案 0 :(得分:0)
雅知道,我刚刚找到它。我看到了这个问题,所以我会在这里回答。
https://github.com/barryvdh/laravel-ide-helper/issues/248#issuecomment-131503475
修复了我的发现或失败。发现仍然是MIA。我很惊讶laravel并不以插件或专用IDE的形式支持他们的代码库。只有那些人在那里创建一个社区并推动世界前进,所以我不能抱怨太多。
答案 1 :(得分:0)
它的工作原理是因为Model
实现了__callStatic()
,它会在新实例上调度它自己:__callStatic() implementation on Model
它创建了一个有问题的模型的新实例(new static
),并在实例上调度静态调用的方法。
实际上,Model::foo($bar)
与(new Model)->foo($bar)
相同。