首页 > 技术文章 > yii 框架 自定义规则客户端验证

wanglg629 2018-01-30 19:29 原文

前提: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);
}

以上。。

推荐阅读