为了账号安全,请及时绑定邮箱和手机立即绑定

Validator.php-3

标签:
PHP

 /**

    * Validate a given attribute against a rule.

    *

    * @param  string  $attribute

    * @param  string  $rule

    * @return void

    */

   protected function validate($attribute, $rule)

   {// validate a given attribute against a rule.

       list($rule, $parameters) = $this->parseRule($rule);//list function to get the

       if ($rule == '') {

           return;

       }// if no rule

       // First we will get the numeric keys for the given attribute in case the field is nested in

       // an array. Then we determine if the given rule accepts other field names as parameters.

       // If so, we will replace any asterisks found in the parameters with the numeric keys.

       if (($keys = $this->getNumericKeys($attribute)) &&

           $this->dependsOnOtherFields($rule)) {//get number and depends

           $parameters = $this->replaceAsterisksInParameters($parameters, $keys);

       }// a normal logic function

       // We will get the value for the given attribute from the array of data and then

       // verify that the attribute is indeed validatable. Unless the rule implies

       // that the attribute is required, rules are not run for missing values.

       $value = $this->getValue($attribute);

    // We will get the value for the given attribute from the array of data and then

    // verify that the attribute is indeed vaidatable.Unless the rule implies

    // that the attribute is required,rules are not run for missing values.

       $validatable = $this->isValidatable($rule, $attribute, $value);

    // determine validatable

       $method = "validate{$rule}";// get method way

       if ($validatable && ! $this->$method($attribute, $value, $parameters, $this)) {

           $this->addFailure($attribute, $rule, $parameters);

       }// determine all

   }

   /**

    * Returns the data which was valid.

    *

    * @return array

    */

   public function valid()

   {

       if (! $this->messages) {

           $this->passes();

       }

       return array_diff_key($this->data, $this->messages()->toArray());

   }// change it is a real valid data

   /**

    * Returns the data which was invalid.

    *

    * @return array

    */

   public function invalid()

   {

       if (! $this->messages) {

           $this->passes();

       }//if do not has messages get passes

       return array_intersect_key($this->data, $this->messages()->toArray());// return array_intersect_key

   }// a invalid method

   /**

    * Get the value of a given attribute.

    *

    * @param  string  $attribute

    * @return mixed

    */

   protected function getValue($attribute)

   {

       if (! is_null($value = Arr::get($this->data, $attribute))) {// type1

           return $value;// return value

       } elseif (! is_null($value = Arr::get($this->files, $attribute))) {//type2

           return $value;// return value

       }

   }//Get the value of a given attribute

   /**

    * Determine if the attribute is validatable.

    *

    * @param  string  $rule

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function isValidatable($rule, $attribute, $value)

   {

       return $this->presentOrRuleIsImplicit($rule, $attribute, $value) &&

              $this->passesOptionalCheck($attribute) &&

              $this->hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute);

    //three type determine this value.

   }//determine if the attribute is validatable.

   /**

    * Determine if the field is present, or the rule implies required.

    *

    * @param  string  $rule

    * @param  string  $attribute

    * @param  mixed   $value

    * @return bool

    */

   protected function presentOrRuleIsImplicit($rule, $attribute, $value)

   {

       return $this->validateRequired($attribute, $value) || $this->isImplicit($rule);

    // this validateRequired

   }//Determine if the field is present, or the rule implies required.

   /**

    * Determine if the attribute passes any optional check.

    *

    * @param  string  $attribute

    * @return bool

    */

   protected function passesOptionalCheck($attribute)

   {

       if ($this->hasRule($attribute, ['Sometimes'])) {

           return array_key_exists($attribute, Arr::dot($this->data))

               || in_array($attribute, array_keys($this->data))

               || array_key_exists($attribute, $this->files);

       }// this->hasRule($attribute)

       return true;

   }// passes Optional Check

   /**

    * Determine if a given rule implies the attribute is required.

    *

    * @param  string  $rule

    * @return bool

    */

   protected function isImplicit($rule)

   {

       return in_array($rule, $this->implicitRules);

   }// check it is a implicit

// in_array

// sorry today,we need to make a very important PPT, so done.

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消