2

フォームを送信すると、次のエラーが発生しました。

Bad Request (#400) Unable to verify your data submission.

<?= Html::csrfMetaTags() ?>レイアウトに入りました。私は日付ピッカーを使用しているため、この問題が発生していると思います。ActiveFormでフォーム作成。

私は何をしなければなりませんか?フォームのコードは次のとおりです。

<?
        $form2 = ActiveForm::begin(['id' => 'user-univer']);
        echo $form2->field($model2, 'university')->label('Input university name:');
        echo $form2->field($model2, 'degree')->label('Input your education specialization:');
        //echo $form2->field($model2, 'date')->label('Input your education date:');
        echo '<label class="control-label">Education time:</label><br/>';
        echo '<span>Start date of your education:</span>';
        echo DatePicker::widget([
            'name'  => 'date_from',
            'value'  => $value,
            'dateFormat' => 'dd.MM.yyyy',
        ]);
        echo '<span>End date of your education:</span>';
        echo DatePicker::widget([
            'name'  => 'date_to',
            'value'  => $value,
            'dateFormat' => 'dd.MM.yyyy',    
        ]);
        echo '<br/><br/>';


        echo $form2->field($model2, 'info')->textarea()->label('Any other information about your university degree:');
        echo Html::submitButton('Add university', ['class' => 'btn btn-primary btn-univer']);
        ActiveForm::end(['id' => 'user-univer']);

        } ?>

UPD: datepicker がないと同じ問題が発生するのはなぜですか? それを解決する方法は?

4

3 に答える 3

1

フォームに csrf トークン フィールドを追加します

<input type="hidden" name="<?=Yii::$app->request->csrfParam?>" value="<?=Yii::$app->request->getCsrfToken()?>" />

あなたの問題を解決します。

于 2015-11-17T12:50:37.780 に答える
0

問題は csrf 検証が原因である可能性があります。csrf検証を無効にしてみましたか

内部アクションこれを試してください

$this->enableCsrfValidation = false;

このリンクを確認してください

于 2015-11-17T11:41:14.493 に答える