Имеются две таблицы user_details и user_teachers, связанные через `user_id`.
В user_details - `user_id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`user_id`).
В user_teachers - `user_id` INT(11) NOT NULL.
В модели
Код: Выделить всё
public function getTeacher()
{
if (($teacher = UserTeachers::findOne($this->user_id)) !== null) {
return $this->hasOne(UserTeachers::className(), ['user_id' => 'user_id']);
} else {
return $this->teacher = new UserTeachers();
}
}
public function setTeacher()
{
return $this->teacher = new UserTeachers();
}
Код: Выделить всё
public function actionCreate()
{
$model = new UserDetails();
$transaction = Yii::$app->db->beginTransaction(); //0
if ($model->load(Yii::$app->request->post()) && $model->save()) {
echo '$model->user_id: '.$model->user_id.'<br>';
if($model->is_teacher){
$model->teacher->user_id = $model->user_id;
if ($model->teacher->load(Yii::$app->request->post())) {
$model->teacher->user_id = $model->user_id;
if ($model->teacher->save()) {
$transaction->commit(); //1
return $this->redirect(['view', 'id' => $model->user_id]);
}else{
$transaction->rollback(); //2
return $this->render('create', [
'model' => $model,
]);
}
}else{
$transaction->rollback(); //3
return $this->render('create', [
'model' => $model,
]);
}
}
$transaction->commit(); //4
return $this->redirect(['view', 'id' => $model->user_id]);
} else {
echo '$model->user_id: '.$model->user_id.'<br>';
$transaction->rollback(); //5
return $this->render('create', [
'model' => $model,
]);
}
}
Вопрос как это можно пофиксить или обойти? Чтобы индексы user_id шли по порядку.
Может через сессию, но какой-то костыль получается?