У меня есть форма, которую я запускаю с jQuery trigger
, и если я устанавливаю метод на GET
, она работает.Но если метод «POST» - 400 Bad Request
.Мой взгляд выглядит следующим образом:
<?php if (Yii::$app->session->hasFlash('success')): ?>
<div class="success-message text-center"><?= Yii::$app->session->getFlash('success') ?></div>
<?php else: ?>
<form action="/order/confirmation" method="post" style="display: none" id="confirm-order">
<input type="hidden" name="order_id" value="<?= $_GET['id'] ?>"/>
<input type="hidden" name="confirm" value="1"/>
</form>
<?php endif; ?>
<?php
$this->registerJs("
(function(){
let form = $('#confirm-order')
form.trigger('submit')
})()
", \yii\web\View::POS_LOAD)
?>
И мое действие:
public function actionConfirmation()
{
$id = Yii::$app->request->post('order_id');
$confirm = Yii::$app->request->post('confirm');
if($confirm){
$order = Orders::findOne(['id' => $id]);
$order->confirmed = 1;
$order->update(false);
Yii::$app->session->setFlash('success', Yii::t('app', 'Your personal information was deleted'));
}
return $this->render('confirmation');
}
В моем UrlManager
URL установлен так:
'order/confirmation' => 'order/confirmation',
Такжепопытался поставить behaviors
на действие контроллера как:
public function behaviors()
{
return [
'verbs' => [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
'confirmation' => ['POST', 'GET'],
],
],
];
}
Ничего не помогает.Резюме - GET
работ.POST
нет.В чем здесь моя ошибка?