2015-12-28 53 views
1

在Laravel 5.2我做了一個文件夾應用程序/模型。 這是我的車型之一:應用程序/模型/ Pin.php方法::發現找不到Laravel 5.2/Eloquent

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class Pin extends Model { 
    protected $table = 'pins'; 
} 

在我composer.json我加入到「類映射」:應用程序/模型。 然後我拼命地跑作曲家轉儲自動加載

在我PinController,我有:

use App\Models\Pin as Pin; 

當我這樣做:引腳::所有();它返回一個集合。

但是,當我嘗試:Pin :: find(1);我得到:

Method find not found in class \App\Models\Pin 

是他們的一種方法,我可以從雄辯的所有方法?

回答

0

我沒有看到你的方法錯誤。它應該工作,並且如果我在乾淨的Laravel 5.2.5安裝上嘗試它,它就可以工作。也許一些其他的依賴正在給你帶來副作用。您是否試圖在乾淨安裝中隔離問題?

您可以在API docs中找到所有Eloquent方法,但請記住Model類具有魔術__call()方法。這就是爲什麼你直接在Model類中看不到find()方法的原因;而調用Model::find()將傳遞給Builder::find()方法。

+0

我嘗試了清潔Laravel 5.2.5安裝,還是一樣。所有()工作正常,找(1)沒有。 __call()方法可能不起作用嗎?我有WAMP堆棧7.0.0-0,它可以是PHP版本7?或者是別的什麼。 –

+0

原來就是爲空,因爲ID 1不存在:$我應該用findOrFail()更好地測試它; Phpstorm顯示find()標記,這就是爲什麼我認爲該方法沒有找到。 –