私はモデルHouse
とモデルenergy_class
を持っています。Laravel Eloquent Relationship未定義のプロパティ
家には1つのエネルギークラスしかありません。エネルギークラスは複数の住宅に割り当てることができます。従って私は、このような関係を定義した:
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' – Scarwolf