Может кто-то сказать мне, у меня есть несколько моделей: у одного предмета много → Свойства , В свойствах есть много → Характеристики Я могу сделать вот так:
return Item::find()->where(['code' => $code])->with('properties')->asArray()->one();
результат:
{ title: "Ванна чугунная Ностальжи 150 с ножками", new: "0", hit: "0", recommend: "0", properties: [ { //lallala }, { //lallala }, ] }
Но я хочу, чтобы вложенные строки (характеристики) в каждом свойстве, как я могу сделать этот элегантный способ?
Из руководства Yii по работе с базами данных :
Вы можете с нетерпением загружать глубоко вложенные отношения, такие как
abcd
. Все родительские отношения будут с нетерпением загружены. То есть, когда вы вызываетеwith()
с помощьюabcd
, вы с нетерпением будете загружатьa
,ab
,abc
иabcd
.
Так что используйте properties.characteristics
:
return Item::find()->where(['code' => $code])->with('properties.characteristics')->asArray()->one()