dkrylov
@dkrylov

Как правильно делать связку hasMany с фото товаров для интернет магазина?

Здравствуйте, уважаемые программисты! =)

Ситуация (немного утрирую для простоты):
Есть таблица product, есть модель Product [id, name]
Есть таблица product_photos [id, product_id, url]

Как мне сделать связь hasMany для таблицы product с таблицей product_photos? Нужно ли создавать модель ActiveRecord для таблицы product_photos ?
Возможно вопрос покажется странным, по этому поясню почему я так спрашиваю. Для связки категорий с товарами используется такая конструкция, которая пишется в модели Catalog:
public function getProduct()
{
        return $this->hasMany(Product::className(), ['catalog_id' => 'id']);
}


И у меня возникает вопрос, который я задал выше. Нужно ли создавать модель для таблицы с фото, или это делается более грамотным путем ?)
  • Вопрос задан
  • 221 просмотр
Решения вопроса 2
@Fortop
Tech/Team lead
Какие у вас альтернативы есть?
Дело в том, что AR сам по себе печальный паттерн.

Но в общем случае - да, вам нужна модель на отдельную сущность в БД
Исключение таблицы связей многие-ко-многим, которые сущностями не являются.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Нужно ли создавать модель ActiveRecord для таблицы product_photos
да

Как мне сделать связь hasMany для таблицы product с таблицей product_photos?

public function getPhotos()
{
        return $this->hasMany(ProductPhotos::className(), ['product_id' => 'id']);
}

где-то в контролере:
$model = Catalog::find()->with('product.photos')->all()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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