为了账号安全,请及时绑定邮箱和手机立即绑定

laravel eloquent - 此集合实例上不存在属性

laravel eloquent - 此集合实例上不存在属性

PHP
炎炎设计 2021-10-22 13:11:34
我的代码有问题。我在数据库中有两个表,带有字段(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');    }} 车模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);    }我做错了什么吗?
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您应该更改 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 的命名约定来避免这种情况。您的模型名称应该是单数。


查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信