在 yii2 中使用 `with` 的嵌套关系
谁能告诉我,我有几个型号:一个Item有很多→属性,On Property有很多→特性我可以这样做:
Can someone tell me, I have several model: One Item has many → Properties, On Property has many → Characteristics I can do like this:
return Item::find()->where(['code' => $code])->with('properties')->asArray()->one();
结果:
{
title: "Ванна чугунная Ностальжи 150 с ножками",
new: "0",
hit: "0",
recommend: "0",
properties: [
{
//lallala
},
{
//lallala
},
]
}
但我想要嵌套行(特征)在每个属性中我怎么能做那么优雅的方式?
But i want nested rows (Characteristics) in every property how can i do that much elegant way?
推荐答案
来自 Yii 使用数据库的指南:
您可以急切地加载深度嵌套的关系,例如 a.b.c.d
.所有父关系都将被急切地加载.也就是说,当你使用 abcd
调用 with()
时,你会急切地加载 a
, ab
, >abc
和 abcd
.
You can eagerly load deeply nested relations, such as
a.b.c.d
. All parent relations will be eagerly loaded. That is, when you callwith()
usinga.b.c.d
, you will eagerly loada
,a.b
,a.b.c
anda.b.c.d
.
所以使用properties.characteristics
:
return Item::find()->where(['code' => $code])->with('properties.characteristics')->asArray()->one()
相关文章