Yii2 Rest API多对多关系

时间:2015-07-16 19:22:29

标签: yii2

我创建了一个控制器来处理api请求并返回一个数据提供程序对象,Yii将其转换为JSON。 (这是通过Yii ActiveController完成的。)现在这个模型还包含一些多对多关系。如何在JSON结构中包含多对多关系中的数据?

实施例

{ sportsfan: { 
    id: 1, name: 'Bob', sport: 'Football', teams: [
        { id: 1, name: 'Arsenal'}, 
        { id:2, name: 'Real Salt Lake' }
    ] 
}

2 个答案:

答案 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'];
}