当我想从表单中获取变量时,post操作没有加载。
这是我的看法:
<?php
$form = ActiveForm::begin();
?>
<div class="form-group">
<input type="text" name="username" placeholder="FullName">
<?= Html::a(Yii::t('app', 'Start'), ['start', 'link' => $model->link], ['type' => 'button','class' => 'btn btn-primary btn-round']) ?>
</div>
<?php ActiveForm::end(); ?>
这是我的控制器:
if ($model->load(Yii::$app->request->post())){
exit(var_dump('everything is ok'));
}else {
exit(var_dump('nothing is right'));
}
结果是“没有什么是正确的”。
3条答案
按热度按时间1mrurvl11#
除了使用锚链接而不是提交按钮,您没有使用model来创建活动输入,因此字段名没有model名称或Yii接受的标准数组格式,您应该将空字符串作为第二个参数传递给load方法,如下所示:
formName
因此,您的完整表单应如下所示
编辑
你的控制器代码应该看起来像下面这样,记住第一次检查它需要在那里,这样代码只在你提交时运行,而不是在页面加载时运行
c6ubokkw2#
这是因为
load()
方法在model name属性中查找post数据,并且您自己编写输入,而不是使用Yii方法编写表单。所以你的帖子
Yii::$app->request->post()
返回:而你的
$model->load
寻找要使您的帖子数据看起来也像这样,您可以用正确的方法来做,也就是说,删除您的Input并在表单中使用以下方法:
或者方式不对,修改您输入的和里面的用户名用途:
当然,我把用户名,你必须把你的真实的模型的名称。
ohfgkhjo3#
最后我找到了解决办法
谢谢你