![](/img/trans.png)
[英]Property [name] does not exist on this collection instance in Laravel 6
[英]laravel eloquent - Property [name] does not exist on this collection instance
我的代碼有問題。 我在數據庫中有兩個表,
具有字段(id_am,名稱)的“汽車制造商”和具有字段(id_cm,名稱,id_am)的“汽車模型”通過id_am字段與表汽車制造商相關。 一個汽車制造商可以擁有多種型號。 在我的代碼中,看起來像這樣:
汽車制造商
class Automakers extends Model
{
protected $table = 'automakers';
public $primaryKey = 'id_am';
public function carModels(){
return $this->hasMany('App\CarModels', 'id_am', 'id_am');
}
}
CarModels
class CarModels extends Model
{
protected $table = 'car_models';
public $primaryKey = 'id_cm';
public function carModels()
{
return $this->belongsTo('App\Automakers', 'id_am', 'id_am');
}
}
現在,當我嘗試檢索視圖中的汽車制造商名稱時,我遇到了錯誤
屬性[名稱]在此集合實例上不存在。
我的控制器代碼
public function create($id)
{
$models = CarModels::find($id)->carModels->name;
return view('cars.models')->with('models', $models);
}
我做錯什么了嗎?
您應該在CarModel中更改關系名稱。
public function autoMaker()
{
return $this->belongsTo('App\Automakers', 'id_am');
}
在Controller中,只需更改關系名稱:
public function create($id)
{
$models = CarModels::find($id)->autoMaker->name;
return view('cars.models')->with('models', $models);
}
注意:請遵循Laravel的命名約定,以避免這種情況。 您的型號名稱應為單數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.