我有用户模型(名称,用户名,密码,...)和客户模型,其与用户模型的关系为1比1,此模型为用于存储(firstName,lastName,email,...)。
我想让客户通过注册流程创建他们的帐户,他们被要求提供(名字,姓氏,电子邮件,密码......)
因此,很明显注册过程必须首先创建用户帐户(使用名字和姓氏作为名称,电子邮件作为用户名和密码)。然后可以创建客户帐户。
即使客户想要稍后更改其名称,我们也必须更新用户帐户中的字段名称。
在Yii2中实现这一目标的最佳方式是什么?
我试图在Customer AR上覆盖beforeSave(),但我面临的问题是如何在相关用户尚未创建的情况下填充属性。
问题是:在创建新的客户帐户时,我们如何创建用户帐户?并且,如何在更新客户帐户时更新相关的用户帐户?
谢谢大家。
答案 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,
]);
}
}