前提:yii 自定义规则不能通过失去焦点验证
view层中:设置form的3个属性,validationUrl 可以不设置,默认为当前页面,但是一般情况验证不会跟提交数据在一个方法中处理
$form = zActiveForm::begin([
‘id‘=> ‘validate‘,
‘enableAjaxValidation‘=> true,
‘validationUrl‘ => \yii\helpers\Url::toRoute(‘/hotel/hotel-room/validate-form‘)]);
model层中写验证规则,判断验证条件
public function rules(){ [[‘OUTSIDE_ORDER_NO‘], ‘noRepeat‘, ‘on‘ => ‘csBook‘, ‘skipOnError‘ => true, ‘skipOnEmpty‘ => true] } public function noRepeat($attr){ //$this -> $attr 该字段需要满足的条件 }
controller中加载数据验证:
public function actionValidateForm(){ Yii::$app->response->format=\yii\web\Response::FORMART_JSON; // 相应数据格式处理 $model = new Person(); $model->load(Yii::$app->request->post); return \yii\widgets\ActiveForm::validate($model); }
以上。。