У меня имеется основная где хранятся заказы и в полном просмотре заказа, хранятся в таблице Zakaz, на этой странице имеется кнопка доставка. при нажатие на нее открывается модальное окно. В модальном окне есть форма, которая должно сохранять данные в таблицу Courier.
Пример я набросал как описано в документации
https://yiiframework.com.ua/ru/doc/guide/2/input-m...
Вот в контроллере как организовал
public function actionView($id)
{
$model = $this->findModel($id);
$shipping = $this->findShipping($id);
if ($shipping->load(Yii::$app->request->post()) && $shipping->save()) {
return $this->redirect(['view', 'id' => $model->id_zakaz]);
}
if ($model->load(Yii::$app->request->post())) {
$model->file = UploadedFile::getInstance($model, 'file');
if(isset($model->file))
{
$model->file->saveAs('maket/Maket_'.$model->id_zakaz.'.'.$model->file->extension);
$model->maket = 'Maket_'.$model->id_zakaz.'.'.$model->file->extension;
$model->status = 4;
}
$model->save();
return $this->redirect(['view', 'id' => $model->id_zakaz]);
}
return $this->render('view', [
'model' => $this->findModel($id),
'user_name' => $user_name,
'shipping' => $shipping,
'file' => $file,
]);
}
protected function findModel($id)
{
if (($model = Zakaz::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
protected function findShipping($id)
{
if (($shipping = Courier::findOne($id)) !== null) {
return $shipping;
} else {
throw new NotFoundHttpException("The requested page does not exist.");
}
}
В zakaz/view находится вот такой код
<?php Modal::begin([
'header' => '<h2>Доставка<h2>',
'size' => 'modal-lg',
'toggleButton' => [
'tag' => 'button',
'class' => 'btn btn-info btn-sm',
'label' => 'Доставка',
],
]);
echo $this->render('shipping', ['shipping' => $shipping]);
Modal::end(); ?>
И питался в файле shipping
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<div class="zakaz-shippingForm">
<?php $f = ActiveForm::begin(); ?>
<?= $f->field($shipping, 'id_zakaz')->textInput() ?>
<?php ActiveForm::end(); ?>
</div>
У меня сейчас выходит страницу с ошибкой
Not Found (#404)
The requested page does not exist
Как правильно написать и где я допустил ошибку?
Простой способ конечно это на отдельную страницу вывести эту форму, но хотелось бы конечно именно в модалке сделать