public function actionUpdate($id) { /* @var Websites $model */ $model = Websites::findOne($id); $form = new WebsiteForm(); if ($form->load($_POST) && $form->validate()) { $model->setAttributes($form->getAttributes(null, ['user_id']), false); $model->on(Websites::EVENT_AFTER_UPDATE, function ($event) use($form) { $model = $event->sender; WebsiteHasUser::deleteAll(['website_id' => $model->id]); if ($form->user_id) { WebsiteHasUser::batchInsertByCondition(['user_id'], explode(',', $form->user_id), ['website_id' => $model->id]); } }); $model->update(false); return $this->redirect('index'); } $form->setAttributes($model->getAttributes()); $form->user_id = implode(',', ArrayHelper::getColumn($model->websiteHasUser, 'user_id')); return $this->render('update', ['model' => $form]); }