Laravel Eloquent - 如何查询给定年份的所有车型?

Laravel Eloquent - How to query all car models of given year where make is given?

我有这些 table:ModelsYearModel_YearModel table 有一个 make_id 列引用 Make table.

中的 id

在我的模型中,我在 ModelYear 之间定义了 belongsToMany 关系。

这是目前在控制器中所做的事情:

public function getModels() {
  $year = Year::findOrFail(1);
  $make = Vmake::findOrFail(1);
  $models = $year->model->pluck('name','id');

  return response()->json($models);
}

本returns年所有车型id1.

如何添加查询以仅获取 make_id = 1 的模型?

对此有一个简单的解决方案。你只需要改变我下面给出的功能

public function getModels() {
  $year = Year::findOrFail(1);
  $make = Vmake::findOrFail(1);
  $models = $year->model()
                ->where('make_id', 1)
                ->pluck('name','id');

  return response()->json($models);
}

以上是修改后的代码。如果这对您不起作用,请尝试告诉我。