如何在Yii2中保存两个模型?

时间:2018-10-26 23:47:45

标签: php sql activerecord yii2

我有一个订阅表单,其中只有两个字段fioemail。我有默认生成的SubscribeForm模型,该模型返回tableName = inf_users

我获得了POST数据,可以使用它并很好地保存到inf_users中。但是现在,我需要将这些值添加到具有结构的上一个表act_courses之后的表model->save中:

  • id(PK)
  • ser_id(FK)
  • course_id(FK)
  • 状态(FK)
  • action_date(DATE)

什么桌子?我存储用户(在线学校)的所有操作(命令)。但是现在我没有没有错误的工作代码。

$model = new SubscribeForm();
$password = generateStrongPassword(12);
$model->password = md5($password);
$infUsersStatuses = $model->getStatuses('inf_users');
$model->status = $infUsersStatuses[0]->id;
$model->reg_date = date('Y-m-d');

if($model->load(Yii::$app->request->post())) {
    $actCoursesModel = new ActCourses();
    $infUser = $model->find()->where(['email' => Yii::$app->request->post('SubscribeForm')['email']])->one();
    $actCoursesModel->user_id = $infUser['id'];
    $actCoursesModel->course_id = $this->courseID;
    $actCoursesStatuses = $model->getStatuses('act_courses');
    $actCoursesModel->status = $actCoursesStatuses[0]->id;
    $actCoursesModel->action_date = date('Y-m-d');

    if ($model->save() && $actCoursesModel->save()) {
      ///someactions
    }

我在做什么错?我在inf_users中有数据,但在act_courses中没有数据。

非常感谢!

P.S。 getStatuses('act_courses')-返回我可以用于表格的所有可用值

1 个答案:

答案 0 :(得分:1)

  
    

我在做什么错?我在inf_users中有数据,但是在act_courses中没有数据

  

$ act_courses变量定义在哪里,$ inf_users变量在哪里?

秒:

$infUser = $model->find()->where(...);

在保存之前查找?

第三名:

if($model->load(Yii::$app->request->post()))

分配一些数据后加载?