在Laravel 5.2中,我制作了一个文件夹app / Models。 这是我的模特之一:app / Models / Pin.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Pin extends Model {
protected $table = 'pins';
}
在我的composer.json中,我添加了" classmap":app / Models。 然后我运行了composer dump-autoload
在我的PinController中,我有:
use App\Models\Pin as Pin;
当我这样做时:Pin :: all();它返回一个集合。
但是当我尝试:Pin :: find(1);我明白了:
Method find not found in class \App\Models\Pin
他们可以从Eloquent获得所有方法吗?
答案 0 :(得分:0)
我认为你的做法没有错。它应该工作,如果我在一个干净的Laravel 5.2.5安装上尝试它,它的工作原理。也许其他一些依赖会给你带来副作用。您是否尝试在干净安装中隔离问题?
您可以在API docs中找到所有Eloquent方法,但请记住,Model类有一个神奇的__call()
方法。这就是为什么你不会直接在Model类中看到find()
方法的原因;相反,对Model::find()
的调用将传递给Builder::find()
方法。