[英]Laravel - retrieving attribute from within a model relationship in a blade view
[英]Laravel Model/View Relationship
我正在學習Laravel,只是不明白如何解決以下問題。
我有兩個表(當然不是數據庫):)
Table: Birds
id
name
species
....
Table: Eggs
id
egg_number
parent_id
....
樣本數據:
bird
id 1
name Jeff
egg
id 1
parent_id 1
我有兩個模型,分別是Bird和Egg,我只是顯示數據庫(MySQL)中可用的數據。
eggs.blade.php
@foreach ($eggs as $egg)
..form data
{{ $egg->id }}
{{ $egg->parent_id }}
..end of form
@endforeach
一切正常。 但是,我希望顯示父(鳥)的名稱而不是ID。 (因此從示例數據中將顯示Jeff)
我嘗試在模型中使用它
return $this->belongsTo('Bird'); //in Egg Model
return $this->belongsTo('Egg'); //in Bird Model
非常感謝您對此提供的任何幫助/說明。
通過執行以下步驟很容易建立關聯:1-在Bird Model中,您必須這樣做
public function Eggs(){
return $this->hasMany('App\Egg');
}
2-然后在雞蛋模型中
public function Bird(){
return $this->belongsTo('App\Bird');
}
有關更多信息,請訪問Laravel Documention
希望能幫到您..
在Egg
模型中,您需要像這樣設置關系:
public function bird()
{
return $this->belongsTo(Bird::class,'parent_id');
}
如果您的列將是bird_id
,它將自己找到外鍵列,但是由於它會自動嘗試附加_id
的模型名稱,因此不知道要使用哪個列。 但是,您可以直接使用belongsTo()
的第二個參數指定引用Bird
主鍵的列。
完成此操作后,您將可以像下面這樣簡單地引用關系:
{{ $egg->bird->name }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.