如何在yii2中建立一对多关系以进行休息api调用

时间:2015-06-09 04:58:15

标签: rest yii yii2

我已经创建了rest api call。

我有两张桌子 1.人 - 外键是id 2.联系 - 外键是personId

我为这个创建模型是

class  Group extends ActiveRecord
    {
        public function relations()
        {
            return array(
                'user'=>array(self::HAS_ONE,'User','id'),
                'contact'=>array(self::HAS_MANY,'Contact','personId')
            );
        }
    }

控制器

public function actionView(){
        $group=Group::find();
        return $group;
}

这够了吗?它不适合我。如何在yii中建立一对多的关系

1 个答案:

答案 0 :(得分:0)

ActiveModel::find()会返回ActiveQuery个实例,但它不会运行查询。 您可以使用Group::findOne(primaryKey)Group::findAll(condition)return $group->one();return $group->all();

至于关系(在你的模型中):

 public function getUser() 
 {
    return $this->hasOne(User::className(), ['id', 'user']);
 }

 public function getContact()
 {
    return $this->hasMany(Contact::className(), ['personId', 'user']);
 }

您拨打$group->user$group->contact。确保不要直接使用该函数,它还会返回一个ActiveQuery实例,这不是您的实际对象。