/**     * Validate that an attribute exists when any other attribute exists.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  mixed   $parameters     * @return bool     */    protected function validateRequiredWith($attribute, $value, $parameters)    {        if (! $this->allFailingRequired($parameters)) {// if all of them just be require            return $this->validateRequired($attribute, $value);// return a validateRequired        }//something is wrong        return true;    }//validate that an attribute exists when any other attribute exists    /**     * Validate that an attribute exists when all other attributes exists.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  mixed   $parameters     * @return bool     */    protected function validateRequiredWithAll($attribute, $value, $parameters)    {        if (! $this->anyFailingRequired($parameters)) {            return $this->validateRequired($attribute, $value);        }// validaterequired        return true;    }// too simple in this function    /**     * Validate that an attribute exists when another attribute does not.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  mixed   $parameters     * @return bool     */    protected function validateRequiredWithout($attribute, $value, $parameters)    {        if ($this->anyFailingRequired($parameters)) {            return $this->validateRequired($attribute, $value);        }        return true;    }//Validate that an attribute exists when another attribute does not.    /**     * Validate that an attribute exists when all other attributes do not.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  mixed   $parameters     * @return bool     */    protected function validateRequiredWithoutAll($attribute, $value, $parameters)    {        if ($this->allFailingRequired($parameters)) {            return $this->validateRequired($attribute, $value);        }        return true;    }//validate that an attribute exists when all other attributes do not    /**     * Validate that an attribute exists when another attribute has a given value.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  mixed   $parameters     * @return bool     */    protected function validateRequiredIf($attribute, $value, $parameters)    {//Validate that an attribute exists when another attribute has a given value.        $this->requireParameterCount(2, $parameters, 'required_if');// a user function        $data = Arr::get($this->data, $parameters[0]);// all of this arr::get        $values = array_slice($parameters, 1);// use this sys function to get this value       // just like get the other array about use this function that is array_pop        if (in_array($data, $values)) {            return $this->validateRequired($attribute, $value);        }// if this value in this value        return true;// default just a true return    }    /**     * Validate that an attribute exists when another attribute does not have a given value.     *     * @param  string  $attribute     * @param  mixed  $value     * @param  mixed  $parameters     * @return bool     */    protected function validateRequiredUnless($attribute, $value, $parameters)    {//validate that an attribute exists when another attribute does not have a given value        $this->requireParameterCount(2, $parameters, 'required_unless');// get parameter Count number , that is a user function        $data = Arr::get($this->data, $parameters[0]);// just get this array value use the key        $values = array_slice($parameters, 1);// get other collection        if (! in_array($data, $values)) {// if in the data            return $this->validateRequired($attribute, $value);        }//determine it is right        return true;//default it is true    }    /**     * Get the number of attributes in a list that are present.     *     * @param  array  $attributes     * @return int     */    protected function getPresentCount($attributes)    {// function name that is get Present Count        $count = 0;// set the default number        foreach ($attributes as $key) {// loop this attribute            if (Arr::get($this->data, $key) || Arr::get($this->files, $key)) {                $count++;            }// if it is can get something by data or bay files ,return count++        }        return $count;    }// get the number in this list now    /**     * Validate that an attribute has a matching confirmation.     *     * @param  string  $attribute     * @param  mixed   $value     * @return bool     */    protected function validateConfirmed($attribute, $value)    {// first this just a wrap        return $this->validateSame($attribute, $value, [$attribute.'_confirmation']);       // validate Same has three parameters    }//validate that an attribute has a matching confirmation    /**     * Validate that two attributes match.     *     * @param  string  $attribute     * @param  mixed   $value     * @param  array   $parameters     * @return bool     */    protected function validateSame($attribute, $value, $parameters)    {        $this->requireParameterCount(1, $parameters, 'same');//require ParameterCount        $other = Arr::get($this->data, $parameters[0]);// Arr::get        return isset($other) && $value === $other;//return it is other    }//validate that two attributes match