Здравствуйте! Не получается записать данные в промежуточную таблицу.
Схема бд:
В форму добавления записи (area) добавил чекбокcлист, который выводит список рабочих с таблицы workers:
<?= $form->field($model, 'workAreas')->checkboxList(ArrayHelper::map(Workers::find()->all(), 'id', 'name')) ?>
В AreaController.php:
public function actionCreate()
{
$model = new Area();
$workarea = new WorkArea();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$workarea->area_id = $model->id;
$workarea->worker_id = $model->workAreas;
//$workarea->save();
var_dump($workarea);
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('create', [
'model' => $model,
]);
}
В модели Area.php:
public function getWorkAreas()
{
return $this->hasMany(WorkArea::className(), ['area_id' => 'id']);
}
Данные с формы уходят все и все они правильные:
var_dump($workarea) показывает нужный area_id, а вот массив worker_id почему-то пуст. Попробовал отдельно var_dump($model->workAreas), массив также пуст. Если в контроллере подставляю $workarea->worker_id = 7(или любое другое), то запись в бд происходит правильно.
На данном этапе, не могу понять почему так происходит( Помогите, пожалуйста, разобраться почему не видно данных в массиве. А также как правильно сохранить массив? Чтоб промежуточная таблица выглядела так: