Выходит когда редактируешь, и сохраняешь заказ, то выходит 2 запроса одновременно отправяется по одному и тому же запросу. Не разу не сталкивался и без понятие почему он приходит
crm/frontend/web/updete/1423
В контроллере вот так реализована
public function actionUpdate($id)
{
$model = $this->findModel($id);//Модель для редактирование заказа
$client = new Client();//Модель базы с клиентами
$client->scenario = Client::SCENARIO_CREATE;//Валидация происходит по определенному сценарию, главное чтобы было всегда помечен id
if ($model->load(Yii::$app->request->post()) && $client->load(Yii::$app->request->post())) {
//Если пришел запрос от заказа и клиента, то в моделе заказе ставится id клиента
$model->id_client = ArrayHelper::getValue(Yii::$app->request->post('Client'), 'id');
//если были загружены файлы то сохраняет файл в хранилище и пишет путь в бд
$model->file = UploadedFile::getInstance($model, 'file');
if (isset($model->file)) {
$model->file->saveAs('attachment/' . $model->id_zakaz . '.' . $model->file->extension);
$model->img = $model->id_zakaz . '.' . $model->file->extension;
}
//Если пришел статус заказа определенный, то проставляется внутрений статус как "Новый" и непрочитанный
if ($model->status == Zakaz::STATUS_DISAIN or $model->status == Zakaz::STATUS_MASTER or Zakaz::STATUS_AUTSORS) {
if ($model->status == Zakaz::STATUS_DISAIN) {
$model->statusDisain = Zakaz::STATUS_DISAINER_NEW;
$model->id_unread = 0;
} elseif ($model->status == Zakaz::STATUS_MASTER) {
$model->statusMaster = Zakaz::STATUS_MASTER_NEW;
$model->id_unread = 0;
} else {
$model->id_unread = 0;
}
}
//Если прошла валидация по двум моделям, то сохраняет и выводит сообщение, если нет то пишет что произошла ошибка и пишет из-за чего конкретно произошла ошибка
if ($model->validate() && $client->validate()){
if (!$model->save()) {
Yii::$app->session->addFlash('errors', 'Произошла ошибка');
print_r($model->getErrors());
} else {
$model->save();
Yii::$app->session->addFlash('update', 'Успешно отредактирован заказ');
}
Если роль shop, то перенаправляет на определенный экран, если роль admin, то преводит на свое окно
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,
]);
}
И в дебаге пришли одинаковые запросы вот такой
$_GET
Name Value
id '1423'
$_POST
Name Value
_csrf-frontend 'FjBSA0WnJbc-MYXzYAJ451ewoKQ6-q9IBrBIS7Sl11suzMMJOq3mg6sUdDaiC7w_OJcJQnKzHaAkmKLXVEtS1A=='
Zakaz [
'description' => 'тестовые кружки'
'number' => '50'
'information' => 'ааи'
'file' => ''
'name' => 'Иван'
'phone' => '82147483647'
'email' => ''
'oplata' => '50'
'fact_oplata' => '25'
'srok' => '2017-07-26 12:10:00'
'status' => ''
'prioritet' => ''
]
Client [
'id' => '51'
]
srok-zakaz-srok-disp '26 Июл 2017 12:10'
$_FILES
Name Value
Zakaz [
'name' => [
'file' => ''
]
'type' => [
'file' => ''
]
'tmp_name' => [
'file' => ''
]
'error' => [
'file' => 4
]
'size' => [
'file' => 0
]
]