Есть две связанные модели - в одной только id есть, соответственно правила валидации пустые
public function rules()
{
return
[];
}
Вторая содержит имя, которое я связываю с id предыдущей модели
Если создать CRUD первой модели, то он генерит форму с вставкой ID
form->field($model, 'id')->textInput()
При этом, при нажатии на кнопку "сохранить", всё ок - генерится и записывается в базу id.
Но заносить, конечно, мне его не хочется. Однако если я удаляю это поле, то модель не сохраняет ID, хотя должна (ну мне так кажется) делать это автоматом. Все var_dump($model->gerErrors()) ничего не выводят.
Форма с закоментированным id:<?php // $form->field($model, 'id')->textInput() ?>
<?= $form->field($modelLang, 'direction_name')->textInput() ?>
Controller $model = new Direction();
$modelLang = new DirectionLang();
if ($model->load(Yii::$app->request->post()) &&
$modelLang->load(Yii::$app->request->post()) && $model->save()) {
$modelLang->lang_id = 2;
$modelLang->direction_id = $model->id;
$modelLang->save();
var_dump($model->getErrors());
var_dump($modelLang->getErrors());
return $this->redirect(['view', 'id' => $model->id]);
}
Как получать id модели Direction не вводя его в поле?
Он всё таки
'id' => $this->primaryKey(),
P.S. Пока решил так
<?php echo $form->field($model, 'id')->hiddenInput()->label(false); ?>
, но, наверное, есть другой путь какой то