2013-05-22 88 views
1

我有一個叫做Auction的Eloquent模型,它有一對一關係的汽車。這是用於檢索汽車的功能:Laravel 4 hasMany does not work

public function cars() 
{ 
    return $this->hasMany('Car'); 
} 

創建的汽車模型,並在車表很行都有一個auction_id值。然而,該功能似乎並沒有工作,當我做

$auction = Auction::find('1'); 
var_dump($auction); 

我得到的輸出:

protected 'relations' => 
array (size=0) 
    empty 

不應該有什麼?

$auction->cars 

也順便返回null。

回答

7

直到被調用纔會加載關係,除非使用熱切加載,所以這就是爲什麼關係空了。至於汽車爲空,如果您想粘貼模型的其餘部分以及var_dump($auction)的完整輸出,這可能對調試有幫助(作爲旁白,應該是Auction::find(1),因爲ID是整數)。我們也可以在freenode的#laravel上尋求幫助。

+0

你是否真的需要急切的加載?我在https://github.com/laravel/framework/issues/1362 – JackPoint

+0

上報告了這個錯誤,我相信你誤解了我的回覆。我說:「除非使用急切的加載,否則直到被調用才加載關係」,因爲關係是延遲加載的。這意味着「關係」屬性在載入時將是空的,除非你有急切的加載。一旦你調用關係,它將被加載,然後在「關係」屬性中可見。 – machuga

+0

JackPoint,請進入#laravel,如果您遇到問題,比如您在公開問題中遇到問題。這可能是您的配置中的一個錯誤,因爲相同的代碼將適用於我自己和其他人。 – machuga