christ
christ

Reputation: 75

Yii2: How to save different data in two tables from one form?

public function actionCreate() {
    $tim = new PstkTim();
    $user = new User();

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

        $tim->id = Yii::$app->generateid->getGUID();
        $tim->save();
        $idTim = $tim->id;
        $user->id = $tim->id;
        $user->save();
        return $this->redirect(['view', 'id' => $tim->id]);
    } else {
        return $this->render('create', [
                    'tim' => $tim,
                    'user' => $user,                 
        ]);
    }
}

I am Trying to insert different data in two different tables. Table PstkTim and User, how do I insert in to User table in Yii2.

Upvotes: 2

Views: 2299

Answers (2)

Tabish Zaman
Tabish Zaman

Reputation: 292

public function actionCreate() {
    $tim = new PstkTim();
    $user = new User();

    if ($tim->load(Yii::$app->request->post())) {
        $tim->save();
        if($user->load(Yii::$app->request->post()))
        {
            $user->id = $tim->id;
            $user->save();
        }
        return $this->redirect(['view', 'id' => $tim->id]);
    } else {
        return $this->render('create', [
                    'tim' => $tim,
                    'user' => $user,                 
        ]);
    }
}

Upvotes: 0

Mohit Tanwani
Mohit Tanwani

Reputation: 6638

Could you please try with following way.

public function actionCreate() {
    $tim = new PstkTim();
    $user = new User();

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

        $tim->id = Yii::$app->generateid->getGUID();
        $tim->save();
        $idTim = $tim->id;
        if($user->load(Yii::$app->request->post()))
        {
            $user->id = $tim->id;
            $user->save(false);
        }
        return $this->redirect(['view', 'id' => $tim->id]);
    } else {
        return $this->render('create', [
                    'tim' => $tim,
                    'user' => $user,                 
        ]);
    }
}

Please let me know if you require any further information.

Upvotes: 1

Related Questions