【发布时间】:2017-04-02 11:33:10
【问题描述】:
我有一个模特House 和一个模特energy_class。
一所房子只有一个能源等级。能源等级可以分配给多个房屋。因此,我这样定义关系:
House.php
class House extends Model
{
public function energy_class()
{
return $this->hasOne('App\energy_class', 'id', 'energy_class');
}
}
energy_class.php
class energy_class extends Model
{
public function house()
{
return $this->belongsToMany('App\House');
}
}
将房屋数据传递给这样的视图时:
$house = House::with('energy_class')->find($id);
return view('admin.houses.edit')->with('house', $house);
并像这样在视图上引用它:
$house->energy_class()->name
我收到此错误:Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$name
当这样做时:$house->energy_class->name 我得到trying to get property of non-object
【问题讨论】:
-
能否显示数据库的表名和列名。
-
表:
house、energy_classes。列:house.energy_class、energy_classes.name
标签: laravel model eloquent relationship