Я изучаю основы Laravel и у меня довольно простой вопрос:
У меня есть три стола:
Таблица блюд:
foods
--------------
id | name
Таблица ингредиентов:
ingredients
---------------
id, | name
Сводная таблица:
food_ingredient
---------------
food_id | ingredient_id
В моделях, которые я использую, метод "ownToMany":
Модель еды:
public function ingredients(){
return $this->belongsToMany('App\Models\Ingredient');
}
Модель ингредиента:
public function foods(){
return $this->belongsToMany('App\Models\Food');
}
FoodsController (index):
$foods = Food::all();
foreach($foods as $food){
$food->ingredients = Ingredient::join('food_ingredient','food_ingredient.id','=','ingredients.id')
->where('food_ingredient.food_id',$food->id)->get();
}
Я хочу получить информацию об ингредиентах (только название до сих пор) каждого продукта и этот запрос (тот, которыйнаходится в цикле foreach), но я не уверен, правильно ли я это делаю.Я не использую отношения ownToMany, поэтому ... должно быть, что-то не так в моем понимании.
Как я могу получить названия ингредиентов?
Пока не узнаем, что только эти имена в порядке, но я добавлю третью таблицу "аллергенов", и скоро она станет сводной таблицей "аллерген_агрегент".Затем я должен получить все продукты, их ингредиенты, а также аллергены каждого ингредиента.Итак, я хочу сделать это хорошо с этого момента.
Заранее спасибо.