如何在YII2高级中将Employee表中的数据添加到用户表

时间:2017-09-12 08:45:34

标签: yii2 yii2-advanced-app yii2-user

我正在制作我的拼贴项目,即员工管理。我在sql中有Employee表(crud也是从gii生成的)。只有Admin有权创建Employee(没有注册)。

我的问题:当我创建员工时,我也无法在用户表中保存数据,请帮助我在员工和用户表中保存数据。

提前致谢

更新

以下是代码:

public function actionCreate() { 
 $model1=new Employee; 
 $model2=new User; 
 if(isset($_POST['Employee']) && isset($_POST['User']))
 { 
   $model1->attributes=$_POST['Emoloyee']; 
   $model2->attributes=$_POST['User']; 
   $model1->save(); 
   $model2->save(); 
   echo 'data is saved in both tables'; 
 } 
 $this->render('create',array('model1'=>$model1,model2'=>$mod‌​‌​el2)); 
}

3 个答案:

答案 0 :(得分:0)

你可以尝试这个例子,

public function actionCreate()
{
    $model = new Employee(); 
    $user = new User(); 

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

        if($model->save() && $user->save()) {
            Yii::$app->session->setFlash('success', 'Record saved successfully.');
        } else {
            //var_dump($model->getErrors());
            //var_dump($user->getErrors());
            Yii::$app->session->setFlash('error', 'Record not saved.');
        }

        return $this->redirect(['index']);
    } else {
        var_dump($model->getErrors());
        var_dump($user->getErrors());
        die();
    }
    return $this->render('create', [
        'model' => $model,
        'user' => $user,
    ]);
}

答案 1 :(得分:0)

可能是你有一些验证问题

尝试检查这种方式

    ......

    $model1->attributes=$_POST['Emoloyee']; 
    $model2->attributes=$_POST['User']; 

    if ($model1->validate() && $model2->validate() ) {
        $model1->save(); 
        $model2->save(); 


    } else {
         $errors1 = $model1->errors;
         $errors2 = $model2->errors;
         var_dump($errors1);
         var_dump($errors2);
         exit();

    }

然后只是为了调试尝试使用

    $model1->attributes=$_POST['Emoloyee']; 
    $model2->attributes=$_POST['User']; 
    $model1->save(false);
    $model2->save(false);  

并检查db是否保存了值。

答案 2 :(得分:0)