我有两张桌子:
Hotels | Countries
country id name
我需要从酒店获取所有笔记,并且Hotels.country
将成为国家/地区的名称:Countries.name
酒店型号有功能:
public function country()
{
return $this->hasOne('App\Country', 'country', 'id');
}
在控制器中我试图获得所有与相关国家的酒店:
$hotels = Hotel::all();
尝试从$hotels
获取每行的国家/地区名称后<:p>
foreach($hotels as $item){
echo $item->country["name"]; // It does not work
}
答案 0 :(得分:2)
应该是
public function country()
{
return $this->belongsTo('App\Country', 'country', 'id');
}
之后,
@foreach ($hotels as $hotel) {{ $hotel->country->name }}
应该有用。
答案 1 :(得分:1)
您需要使用预先加载。
$hotels = Hotel::with('country')->get();
查看文档here。
为了访问国家/地区名称,它是一个普通对象:
$hotel->country->first()->name
如果您想在酒店模特
中拥有直接功能public function countryName()
{
return $this->country->first()->name
}