<form action="index.php?r=model" method="post">
Name:<input name="name"><br>
ID:<input name="id"><br>
Sex:<input name="sex"><br>
Age:<input name="age"><br>
<input type="submit" value="submit">
</form>
表单视图是这样的
public function actionIndex(){
$student = new Student();
if($student->load(Yii::$app->request->post())){
return $this->render('student_info',['student'=>$student]);
}else{
return $this->render('student');
}
}
控制器里面是这样的。为什么load返回的是false,属性名和表单名是相同的
load方法会读取键为类名的数组,并绑定到AR对象,所以你的表单name应该这样写:
你也可以使用yii自带的wiget
,或者yii\helpers\Html
下的active
系列方法生成表单。
表单文本框name不对, 应该是Student[name] Student[sex] 这样才可以
用yii提供的方法建立表单
他们都说了你表单错了,确实也错了。但你还可以修改load的参数来实现
Yii::$app->request->post 他这个方法,会自动都model的rule验证嘛?
自定义表单,第二个参数为空,要加上
$student->load(Yii::$app->request->post(), ”)