Size: a a a

2020 July 29

AT

Anton Titov in Yii Framework 3
тесты на это были
источник

СП

Сергей Предводителев... in Yii Framework 3
да, это я понял.
Сейчас пример напишу.

таблица book: ..., priceA, currencyA, priceB, currencyB

class Book {
 public $priceA;
 public $priceB;
}

class Price {
 public $price;
 public $currency;
}

что нужно сделать, чтобы в Book priceA и priceB были экземплярами класса Price?
источник

AT

Anton Titov in Yii Framework 3
два раза Embed
источник

AT

Anton Titov in Yii Framework 3
только префиксы разные
источник

AT

Anton Titov in Yii Framework 3
я правда такое не проверял)
источник

СП

Сергей Предводителев... in Yii Framework 3
И в аннотациях можно?
источник

AT

Anton Titov in Yii Framework 3
ага
источник

AT

Anton Titov in Yii Framework 3
если нельзя то кинь тикет
источник

AT

Anton Titov in Yii Framework 3
потому что должно быть можно
источник

AT

Anton Titov in Yii Framework 3
но только если разные префиксы
источник

СП

Сергей Предводителев... in Yii Framework 3
columnPrefix, то есть заканчиваться названия полей в БД должны на _price и _currency, да?
источник

AT

Anton Titov in Yii Framework 3
да
источник

AT

Anton Titov in Yii Framework 3
будет типа price_a_currency
источник

AT

Anton Titov in Yii Framework 3
price_b_currency
источник

СП

Сергей Предводителев... in Yii Framework 3
/** @Embedded(target = "Price",columnPrefix="price_a_") */
Вот так в сущности будет, да?
источник

AT

Anton Titov in Yii Framework 3
да
источник

СП

Сергей Предводителев... in Yii Framework 3
Для универсальности что-нибудь вот такое ещё бы :)

/** @Embedded(target = "Price",mapping=['price_a' => 'price', 'currency_a' => 'currency']) */
источник

AT

Anton Titov in Yii Framework 3
маппинг описывается в самом эмбеддинге
источник

AT

Anton Titov in Yii Framework 3
иначе ты будешь его дублировать
источник

AT

Anton Titov in Yii Framework 3
и это приведет с 😢
источник