Size: a a a

2020 July 29

СП

Сергей Предводителев... in Yii Framework 3
Я кажется понял, что то, что я хочу невозможно в рамках ORM)))

Я хотел, чтобы  new Address($city, $state, ...); делала ORM, беря $city, $state из полей таблицы в БД.

Но если туда она может сделать, то обратно не сможет. В Column Wrapper это через __toString делается, а тут непонятно как
источник

AT

Anton Titov in Yii Framework 3
может почему
источник

AT

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

СП

Сергей Предводителев... in Yii Framework 3
А как поймёт ORM - как вытащить значения полей из Address ?
источник

AT

Anton Titov in Yii Framework 3
сейчас маппер работает через doctrine/instantiator
источник

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
чтобы было "как в доктрине"
источник

AT

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

AT

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

AT

Anton Titov in Yii Framework 3
вот этот метод переделываешь для Address и все ок
источник

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
так работает ar в цикле
источник

СП

Сергей Предводителев... in Yii Framework 3
А обратно как ORM поймёт что сохранять? Надо же ей где-то указать как $city и $street вытащить из Address
источник

AT

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

AT

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

AT

Anton Titov in Yii Framework 3
на каждый hydrate есть extract
источник