方法::找不到Laravel 5.2 / Eloquent

时间:2015-12-28 09:37:32

标签: php laravel-5 eloquent

在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获得所有方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你的做法没有错。它应该工作,如果我在一个干净的Laravel 5.2.5安装上尝试它,它的工作原理。也许其他一些依赖会给你带来副作用。您是否尝试在干净安装中隔离问题?

您可以在API docs中找到所有Eloquent方法,但请记住,Model类有一个神奇的__call()方法。这就是为什么你不会直接在Model类中看到find()方法的原因;相反,对Model::find()的调用将传递给Builder::find()方法。