我创建了一个控制器来处理api请求并返回一个数据提供程序对象,Yii将其转换为JSON。 (这是通过Yii ActiveController完成的。)现在这个模型还包含一些多对多关系。如何在JSON结构中包含多对多关系中的数据?
实施例
{ sportsfan: {
id: 1, name: 'Bob', sport: 'Football', teams: [
{ id: 1, name: 'Arsenal'},
{ id:2, name: 'Real Salt Lake' }
]
}
答案 0 :(得分:0)
我将回答我自己的问题。我需要做的就是以下几点。我在我的模型中创建了以下方法:
public function fields()
{
return ['id', 'name', 'sport', 'teams'];
}
注意“id”和“sport”是模型的属性,“name”是getter函数,“团队”是关系。 Yii2对待它们都是一样的。这是一个很棒的功能!
答案 1 :(得分:0)
为此目的,有方法extraFields()(https://github.com/yiisoft/yii2/blob/master/docs/guide/rest-resources.md#overriding-extrafields-)
public function extraFields()
{
return ['teams'];
}