Laravel Eloquent - Как запросить все модели автомобилей данного года, где указана марка?

У меня есть эти таблицы: Models, Year а также Model_Year, Model стол имеет make_id столбец, ссылающийся на id в Make Таблица.

В моей модели я определил отношение ownToMany между Model а также Year,

Это то, что я делаю до сих пор в контроллере:

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

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

Это возвращает все модели года с id 1.

Как добавить запрос, чтобы получить только модели, где make_id = 1?

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);
}

выше измененный код. Попробуйте и дайте мне знать, если это не работает для вас.

Другие вопросы по тегам