Я пробую отредактировать запись, только запись не редактируется постоянно переходит в данную страницу с формой. Пробовал различными способами
$model->errors
тут пустой массив хотя в
var_dump($model->validate())
пишет boolen false. Только я не могу определить где именно не срабатывает валидация и какая именно ошибка?
Если весь код показывать с action
public function actionUpdate($id)
{
$model = $this->findModel($id);//Модель заказа
$client = new Client();//Модель клиентов
$client->scenario = Client::SCENARIO_CREATE;
$user = User::findOne(['id' => User::USER_DISAYNER]);
$tag = new ZakazTag();// Модель тегов
$telegram = new Telegram();
if ($model->load(Yii::$app->request->post()) && $client->load(Yii::$app->request->post())) {
$model->id_client = ArrayHelper::getValue(Yii::$app->request->post('Client'), 'id');//берет только данные клиента через select 2. Не помню зачем так сделал скорее всего надо поменять этот момент. Возмодер что что клиента это отдельная модель и может пользователь в этом же окне создать
/** Сохранение файла */
$model->file = UploadedFile::getInstance($model, 'file');
if (isset($model->file)) {
$model->upload('update', $id);
}
$model->changedUnread(); // логика прописано в модели прочитано или нет при редактирование
var_dump($model->validate());// выводит false
/** Если клиент и заказ прошли валидацию то идет сохраннение данных*/
if ($model->validate() && $client->validate()){
if (!$model->save()) {
print_r($model->getErrors());
} else {
/** Также сохраняет теги */
$arr = ArrayHelper::map($model->tags, 'id', 'id');
$post = Yii::$app->request->post('Zakaz')['tags_array'];
if ($post){
$tag->getZakazForm($post, $arr, $id);
}
/** Идет отправка уведомление через телеграм */
if($model->status == Zakaz::STATUS_DISAIN && $user->telegram_chat_id){
$telegram->message(User::USER_DISAYNER, 'Назначен заказ '.$model->prefics.' '.$model->description);
}
Yii::$app->session->addFlash('update', 'Успешно отредактирован заказ');
}
/** Смотря какая роль и именно туда идет редирект */
if (Yii::$app->user->can('shop')) {
return $this->redirect(['shop']);
} elseif (Yii::$app->user->can('admin')) {
return $this->redirect(['admin']);
}
}
}
return $this->render('update', [
'model' => $model,
'client' => $client,
]);
Код большой я хочу сделать рефакторинг и сократить код, но прижде всего мне нужно понять почему не редактируются данные