这是我的视图,其中有一个表单包含一个字段和一个提交按钮。
<form id="typeheadForm" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">Movie</label>
<div class="col-xs-3">
<input type="text" class="form-control" name="state" id="movie_name" />
</div>
</div>
<input type='submit' name='submit' value='Search' class="btn btn-squared btn-default">
</form>
以下是我的控制器代码
public function actionMovies_all()
{
$this->layout = "main";
if ( isset( $_POST[ 'movie_name' ] ) )
{
print_r("success");die();
}
if ( Yii::$app->request->post() )
{
print_r(Yii::$app->request->post());die();
}
}
我无法发布表单。我究竟做错了什么? 我收到一个错误&#34;不良要求(#400) 无法验证您的数据提交。&#34;
答案 0 :(得分:2)
将<form id="typeheadForm" method="post" class="form-horizontal">
替换为
<?= \yii\helpers\Html::beginForm('', 'post', ['id' => 'typeheadForm', 'class' => 'form-horizontal']);?>
您收到bad request
因为当您手动创建表单时,未将 csrf 标记包含在其中。当您使用Html::beginForm
方法创建表单时,它会在内部处理它。
答案 1 :(得分:0)
试试这个:
public function actionMovies_all()
{
$this->layout = 'main';
if ( isset( $_POST[ 'submit' ] ) )
{
print_r('success');die();
}
if ( Yii::$app->request->post() )
{
print_r(Yii::$app->request->post());die();
}
}