ActiveForm表单提交后,通过网页中Network可知表单数据已经向控制器提交。但是,控制器中却接受不到数据。
我遇到这个问题的原因是:在表单模型的类文件中没有给表单的属性设置规则,就是没有使用rules()方法对属性设置规则。以我遇到的问题为例:
public function rules(){ return [ [['id', 'name', 'code', 'type'], 'required'], ] }
只需要简单的这样写就可以在控制器中获取到表单数据了。经过测试,在该方法中注释掉的属性都无法穿到控制器中。
2.在ActiveForm表单中使用dropDownList,比如下面的代码:
类型:<?php echo $form->field($model, 'type')->dropDownList($class::$type,['prompt'=>'请选择', 'style' => 'with:120px', 'class' => 'form-control']) ?>
在页面中显示几条带选的选项,如果选择 '请选择' 这个选项,后项后台传入:
'' //空,并不是null
如果选择其他的选项,这传入的是每个选项对应的key,并使选项本身的value,这里是:
0 //第一个选项1 //第二个选项 //...
作者:偏偏注定要落脚丶
链接:https://www.jianshu.com/p/d49e1577cf9c