Загрузка значений по умолчанию в другую таблицу при создании пользователя в yii2

#yii2

#yii2

Вопрос:

У меня есть таблицы tbl_user и tbl_activity.

Пользователь может быть трех типов ie. Администратор, менеджер и продавец. Там может быть любой номер администратора. Только администратор может вставлять, обновлять и данные в tbl_activity. В tbl_activity есть столбец user_id, который разделяет действия разных администраторов.

С пользователями и активностью все в порядке. Но что мне нужно, так это то, что если администратор будет создан, мне нужно создать некоторые действия по умолчанию в tbl_activity с идентификатором пользователя, принадлежащим вновь созданному администратору, чтобы им было легко понять, что на самом деле представляют собой действия. Администратор может после удаления или обновления этих действий выбрать правильный способ вставки этих действий по умолчанию в Yii2.

Я пытаюсь найти что-то в Google, но не повезло. Любая ссылка и учебное пособие также будут высоко оценены. Вот мой контроллер actionCreate.

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

Модель после сохранения

 public function afterSave($insert, $changedAttributes)
{
     parent::afterSave($insert, $changedAttributes);
     if($this->id amp;amp; $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.
 }
  

У меня есть интерфейс angular.И я использую mdmsoft yii-admin. Не лучше ли создать мой массив значений по умолчанию внутри компонентов и вставить массив компонентов с идентификатором пользователя в базу данных внутри defaultAdminActivity()?

Спасибо

Комментарии:

1. Обновите свой вопрос и добавьте код создания контроллера / действия

2. Событие afterSave() будет лучшим решением для вашего случая. Запишите событие afterSave() в свой файл модели пользователя и внутри этого метода проверьте роль пользователя, если роль является администратором, добавьте действие в таблицу действий. Пожалуйста, обратитесь к ссылке — yiiframework.com/doc-2.0 /…

3. Я надеюсь, что после добавления метода afterSave() ваша проблема решена. Вы все еще сталкиваетесь с какой-либо проблемой?

4. Существует defaultAdminActivity(), где мне нужно сохранить действия по умолчанию. Каков будет лучший способ вставить действия по умолчанию и где определить действия по умолчанию?

5. Вызов метода defaultAdminActivity() из метода afterSave() — лучший способ создать действие для вновь добавленного администратора. Итак, ваш код верен