在Yii2中创建/更新子关系模型时创建/更新父关系

时间:2015-07-02 08:51:05

标签: activerecord yii2 relationship updatemodel

我有用户模型(名称,用户名,密码,...)和客户模型,其与用户模型的关系为1比1,此模型为用于存储(firstName,lastName,email,...)。

我想让客户通过注册流程创建他们的帐户,他们被要求提供(名字,姓氏,电子邮件,密码......)

因此,很明显注册过程必须首先创建用户帐户(使用名字和姓氏作为名称,电子邮件作为用户名和密码)。然后可以创建客户帐户。

即使客户想要稍后更改其名称,我们也必须更新用户帐户中的字段名称。

在Yii2中实现这一目标的最佳方式是什么?

我试图在Customer AR上覆盖beforeSave(),但我面临的问题是如何在相关用户尚未创建的情况下填充属性。

问题是:在创建新的客户帐户时,我们如何创建用户帐户?并且,如何在更新客户帐户时更新相关的用户帐户?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以在客户控制器中管理此操作,并正确更改创建和更新操作。

例如actionCreate:

public function actionCreate()
    {
        $modelCustomer = new Customer();
        modelUser = new User(); 


        if ($modelCustomer->load(Yii::$app->request->post()) && $modelCustomer->save()) {
            modelUser->name = $modelCustomer->name; 
            .........
            $modelUser
            return $this->redirect(['index']);
        } else {
            return $this->render('create', [
                'model' => $modelCustomer,
            ]);
        }
    }
相关问题