【发布时间】:2022-07-15 01:12:13
【问题描述】:
我创建了一个简单的表单,在模型中声明了简单的规则,但是当我尝试提交时,它不起作用,我也没有遇到错误。预期的输出应该是会话闪存,但在我的情况下没有发生任何事情
这是我的控制器
public function actionCustomer()
{
$model = new CustomerForm;
if($model->load(Yii::$app->request->post()) && $model->validate())
{
Yii::$app->session->setFlash('success','you entered it correctly');
}
return $this->render('customerForm',['model'=>$model]);
}
这是我的模特
<?php
namespace app\models;
use yii\base\Model;
class CustomerForm extends Model
{
public $name;
public $email;
public function rules()
{
return [
[['name', 'email'], 'required'],
['email', 'email'],
];
}
}
这是我的看法
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php
if(Yii::$app->session->hasFlash('success')){
echo Yii::$app->session->getFlash('success');
}
?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model,'name'); ?>
<?= $form->field($model,'email'); ?>
<?= Html::submitButton('Submit',['class'=>'btn btn-success']); ?>
【问题讨论】:
-
规则第二行看不懂,好像不太对。只保留所需的行。
-
@Skatox 第二行是正确的。它将内部
EmailValidator应用于email字段。
标签: yii2 yii2-basic-app yii2-model yii2-user yii2-validation