簡體   English   中英

laravel雄辯-屬性[name]在此集合實例上不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM