Maison >développement back-end >tutoriel php >À propos de la méthode d'implémentation du validateur personnalisé dans le framework thinkPHP5

À propos de la méthode d'implémentation du validateur personnalisé dans le framework thinkPHP5

不言
不言original
2018-06-19 15:22:502287parcourir

Cet article présente principalement la méthode d'implémentation du validateur personnalisé du framework thinkPHP5 et analyse la définition et l'utilisation spécifiques du validateur personnalisé thinkPHP sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

Les exemples dans. Cet article est expliqué. Développement de la méthode d'implémentation du validateur personnalisé du framework thinkPHP5. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le manuel du validateur ordinaire est très détaillé, expliquons comment personnaliser un validateur

Nous créons d'abord le fichier validata dans le module directory Folder

puis créez une classe à l'intérieur, nommée IdMustInt.php

Le code est le suivant : Notez que mon module s'appelle api, donc l'espace de noms est le suivant

Protéger les attributs $rule est une règle officielle et ne peut pas être modifiée. En fait, les règles de vérification requises sont des noms de fonction encapsulés, nous créons donc également une méthode, et le nom de la méthode est renseigné après la règle de vérification

.

namespace app\api\validate;
use think\Validate;
class IdMustInt extends Validate
{
  protected $rule = [
    'id' => 'require|IsInt'
  ];
  protected function IsInt($value,$rule,$data,$field){
  //参数依次为验证数据,验证规则,全部数据(数组),字段名
  //这里我们要判断的验证的数据要求必须为正整型
    if(is_numeric($value) && is_int($value+0) && ($value+0) > 0){
      return true;
    }else{
  //如果不符合我们的条件,返回错误信息,在控制器中可以用getError()方法输出
      return $field.'不是整型';
    }
  }
}

Regardons les opérations correspondantes de notre contrôleur

public function getBanner($id)
{
    //需要验证的数据
    $data = [
      'id' => $id,
    ];
  //实例化验证器
    $validate = new IdMustInt();
  //如果验证数据较多,条件也较多,需要批量返回所有错误信息的话,可以在check()前加上$validata->batch()
    $result = $validate->check($data);
    if($result){
      //业务逻辑
    }else{
      dump($validate->getError());
    }
}

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos de la méthode de thinkphp pour implémenter la fonction d'historique de navigation

À propos de l'analyse du contrôleur de ThinkPHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn