Вы можете сохранить идентификатор аромата в таблице продуктов (если продукт имеет только ОДИН аромат).
Чтобы сохранить более одного аромата в продукте, необходим третий стол.
Пример:
TableProducts |TableFlavours |TableUsedFlavours (будет содержать идентификатор продукта и идентификатор аромата).
Чем искать продукт, используя «с» для связи TableUsedFlavours.Со связями вы также можете связать TableFlavours, чтобы получить имя аромата.
Извлечение аромата из продукта (также с именем аромата):
Контроллер продуктов выполняет красноречивый запрос:
$record: Product::select(some_fields)
->with('flavours')
->get();
Продукты модальные, создайте функцию 'flavors':
public function flavours()
{
return $this->hasMany(UsedFlavours::class, 'product_id', 'id')
->with(['flavour' =>function($query){
$query->select(['flavour_name'])->where(anything);}]);
}
Теперь в модели UsedFlavours:
public function feature(){
return $this->belongsTo(Flavour::class,'flavour_id','id');
}
Теперь в модели Flavor:
public function usedFeatures()
{
return $this->belongsTo('UsedFlavours','id');
}
Этот код не проверен, но это логика.