/** * Extend the Validator. * * @param Factory $factory */ protected function extendValidator(Factory $factory) { $factory->replacer('required_if_has', function ($message, $attribute, $rule, $parameters) { return $this->setFieldsAndValues($message, $attribute, $rule, $parameters); }); $factory->replacer('required_if_not', function ($message, $attribute, $rule, $parameters) { return $this->setFieldsAndValues($message, $attribute, $rule, $parameters); }); ///////////////////// // Required if NOT // ///////////////////// $factory->extendImplicit('required_if_not', function ($attribute, $value, $parameters = []) { $input = $this->input(); $field = $parameters[0]; $fieldValue = $parameters[1]; // If the field is not set, default to true if (!array_key_exists($field, $input)) { return true; } return $input[$field] !== $fieldValue ? array_key_exists($attribute, $input) : true; }, "La question ':attribute' est requise lorsque la question ':field' n'est pas ':value' !"); ////////////////////////////////// // If checkbox contains a value // ////////////////////////////////// $factory->extendImplicit('required_if_has', function ($attribute, $value, $parameters = []) { $input = $this->input(); $field = $parameters[0]; $fieldValue = $parameters[1]; // If the field is not set, default to true if (!array_key_exists($field, $input)) { return true; } return array_key_exists($fieldValue, $input[$field]) ? array_key_exists($attribute, $input) : true; }, "La question ':attribute' est requise lorsque la question ':field' contient ':value' !"); }
/** * Register a custom implicit validator extension. * * @param string $rule * @param \Closure|string $extension * @param string $message * @return void * @static */ public static function extendImplicit($rule, $extension, $message = null) { \Illuminate\Validation\Factory::extendImplicit($rule, $extension, $message); }
/** * Register a custom implicit validator extension. * * @param string $rule * @param \Closure|string $extension * @param string $message * @return void */ public function extendImplicit($rule, $extension, $message = null) { $this->factory->extendImplicit($rule, $extension, $message); }