我的代码有问题。我在数据库中有两个表,带有字段(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 的命名约定来避免这种情况。您的模型名称应该是单数。
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消