yii 框架 自定义规则客户端验证

前提:yii 自定义规则不能通过失去焦点验证

view层中:设置form的3个属性,validationUrl 可以不设置,默认为当前页面,但是一般情况验证不会跟提交数据在一个方法中处理

$form = zActiveForm::begin([
      'id'=> 'validate',
      'enableAjaxValidation'=> true,
      'validationUrl' => yiihelpersUrl::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=yiiwebResponse::FORMART_JSON; // 相应数据格式处理
  $model = new Person();
  $model->load(Yii::$app->request->post);
  return   yiiwidgetsActiveForm::validate($model);
}

以上。。

原文地址:https://www.cnblogs.com/wanglg629/p/8386897.html