/** * 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