2015-05-07 42 views
0

工作,我有兩個表:Laravel雄辯模型關係不上刀模板

Persons 
id, name, foto_id 

Fotos 
id, url 

Person模式,我說:

public function foto() { 
    return $this->hasOne("App\\Foto","id","foto_id"); 
} 

請注意,我需要轉義\F ...

當我嘗試{{ $person->foto->url }},我得到「試圖訪問非對象的屬性」錯誤。如果我{{ print_r($person->foto()) }}我得到的只是1 ...

我跟着laravel文檔,這tutorial

這是一個項目,我創建學習Laravel,所以任何有幫助的建議表示讚賞!

編輯:
artisan tinker$person->foto->url工作按計劃,返回Foto對象就好了......

回答

0

您需要使用belongsTo功能,而不是hasOne的。
如果您創建Foto模型,那麼您需要一個hasMany函數。

有關這方面的更多信息,請參閱Laravel docs

+0

所以我必須鏈接兩端的關係(Person'hasOne' Foto和Foto'belongsTo' Person)? –

+0

另一種方式:代表FK表的模型使用'belongsTo'函數。表示包含PK的表的模型使用'hasOne'或'hasMany'函數。 – Blaatpraat

+0

這似乎是我的誤解! 'Person'有'Foto',所以我把FK(?)foto_id放在'Persons'表上,而'Fotos'表只有'id'和'url'字段。所以,只有這個人應該知道它的照片是什麼,沒有Foto應該知道他們屬於誰。 –