Задать вопрос

Как создать связующую таблицу с дополнительным столбцом laravel?

Существуют две таблицы: categories, attributes. Каждой категории принадлежит несколько атрибутов. Таблица category_attribute по задумке является связующей. Laravel позволяет получать атрибуты, принадлежащие категории, и категории, имеющие атрибут. Необходимо задать каждому из атрибутов определенное значение для каждой категории. Например, атрибут «описание» будет для каждой категории разным.
Для решения этой задачи я хочу добавить в связующую таблицу category_attribute помимо столбцов идентификаторов столбец value, в котором будут храниться значения атрибутов для категорий. Вопрос таков. Как получить все атрибуты категории и получить значения этих атрибутов? Если задумка со связующей таблицей неправильна, то подскажите, в каком направлении двигаться.
Спасибо.
  • Вопрос задан
  • 501 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
Denormalization
@Denormalization
Можно сделать и так.
Просто в category_attribute добавляем value и при создании связи указываем:
return $this->belongsToMany(Attribute::class)->withPivot();

В итогде значение value можно будет получить через:
$attributes = Category::attributes;
foreach ($attributes as $attr) {
  echo $attr->pivot->value, PHP_EOL;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы