在yii2中创建用户时将默认值加载到另一个表中

在yii2中创建用户时将默认值加载到另一个表中,yii2,Yii2,我有表tbl_用户和tbl_活动 用户可以是三种类型,即管理员、经理和销售人员。可以有任何数量的管理员。只有管理员可以在tbl_活动中插入、更新和删除数据。 tbl_活动具有列user_id,用于分隔不同管理员的活动 与用户和活动是好的。但我需要的是,如果要创建Admin,我需要在tbl_activity中创建一些默认的活动,其中的user_id属于新创建的Admin,这样他们就很容易理解实际的活动是什么。管理员可以在删除或更新此活动后 在Yii2中插入这些默认活动的正确方法是什么 我试图在谷歌

我有表tbl_用户和tbl_活动

用户可以是三种类型,即管理员、经理和销售人员。可以有任何数量的管理员。只有管理员可以在tbl_活动中插入、更新和删除数据。 tbl_活动具有列user_id,用于分隔不同管理员的活动

与用户和活动是好的。但我需要的是,如果要创建Admin,我需要在tbl_activity中创建一些默认的活动,其中的user_id属于新创建的Admin,这样他们就很容易理解实际的活动是什么。管理员可以在删除或更新此活动后 在Yii2中插入这些默认活动的正确方法是什么

我试图在谷歌上找到一些东西,但运气不好。任何链接和教程也将不胜感激。 这是我的控制器actionCreate

public function actionCreate()
{
  $model = new User();
  if ($model->load(Yii::$app->getRequest()->getBodyParams(), '') && $model->validate() && $model->save()
  {
    //data save success message here
  }
  else {
  //validation error message here
  }
 }
模型余波

public function afterSave($insert, $changedAttributes)
{
     parent::afterSave($insert, $changedAttributes);
     if($this->id && $insert == '1')
     {
         //Assign role using yii2 admin mdmsoft
         $role = Yii::$app->authManager->getRole($this->position_id);
         //if is role insert into auth_assignment table;
         if(!$role == NULL) 
         {
             Yii::$app->authManager->assign($role,$this->id);
             //if role is admin save default activity
             if($role->name == 'Admin')
             {
                 @TODO function default activity for
                 $this->defaultAdminActivity($model1->id);
             }
         }
      }
 }

 private function defaultAdminActivity($id)
 {
   //@TODO Is where I need to save default activities for Admin
   //suppose default activity is a,b and c. which i need to save to database with $id as user id.
 }
我有角度前端。我使用的是mdmsoft yii admin。最好在组件内创建我的默认值数组,并在defaultAdminActivity()内的数据库中插入具有用户id的组件数组


谢谢你

更新你的问题并添加你的控制器/操作create codeafterSave()事件将是最适合你的解决方案。在用户模型文件中写入afterSave()事件,并在该方法中检查用户角色(如果该角色是admin)将活动添加到活动表中。请参考链接-添加afterSave()方法后,我希望您的问题得到解决。你还面临任何问题吗?我需要在defaultAdminActivity()中保存默认活动。插入默认活动以及在何处定义默认活动的更好方法是什么?从afterSave()方法调用defaultAdminActivity()方法是为新添加的管理员创建活动的最佳方法。所以你的代码是正确的