在yii2中创建用户时将默认值加载到另一个表中
我有表tbl_用户和tbl_活动 用户可以是三种类型,即管理员、经理和销售人员。可以有任何数量的管理员。只有管理员可以在tbl_活动中插入、更新和删除数据。 tbl_活动具有列user_id,用于分隔不同管理员的活动 与用户和活动是好的。但我需要的是,如果要创建Admin,我需要在tbl_activity中创建一些默认的活动,其中的user_id属于新创建的Admin,这样他们就很容易理解实际的活动是什么。管理员可以在删除或更新此活动后 在Yii2中插入这些默认活动的正确方法是什么 我试图在谷歌上找到一些东西,但运气不好。任何链接和教程也将不胜感激。 这是我的控制器actionCreate在yii2中创建用户时将默认值加载到另一个表中,yii2,Yii2,我有表tbl_用户和tbl_活动 用户可以是三种类型,即管理员、经理和销售人员。可以有任何数量的管理员。只有管理员可以在tbl_活动中插入、更新和删除数据。 tbl_活动具有列user_id,用于分隔不同管理员的活动 与用户和活动是好的。但我需要的是,如果要创建Admin,我需要在tbl_activity中创建一些默认的活动,其中的user_id属于新创建的Admin,这样他们就很容易理解实际的活动是什么。管理员可以在删除或更新此活动后 在Yii2中插入这些默认活动的正确方法是什么 我试图在谷歌
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()方法是为新添加的管理员创建活动的最佳方法。所以你的代码是正确的