diff --git a/laravel/documentation/validation.md b/laravel/documentation/validation.md index 49401439..528cea75 100644 --- a/laravel/documentation/validation.md +++ b/laravel/documentation/validation.md @@ -63,6 +63,9 @@ Now you are familiar with the basic usage of the Validator class. You're ready t 'name' => 'required' +#### Validate that an attribute is present, when another attribute is present: + 'last_name' => 'required_with:first_name' + ### Alpha, Alpha Numeric, & Alpha Dash diff --git a/laravel/validator.php b/laravel/validator.php index 3290bc17..968e94b7 100644 --- a/laravel/validator.php +++ b/laravel/validator.php @@ -214,7 +214,7 @@ class Validator { */ protected function implicit($rule) { - return $rule == 'required' or $rule == 'accepted'; + return $rule == 'required' or $rule == 'accepted' or $rule == 'required_with'; } /** @@ -257,6 +257,27 @@ class Validator { return true; } + /** + * Validate that an attribute exists in the attributes array, if another + * attribute exists in the attributes array. + * + * @param string $attribute + * @param mixed $value + * @param array $parameters + * @return bool + */ + protected function validate_required_with($attribute, $value, $parameters) + { + $other = $parameters[0]; + + if ($this->validate_required($other, $this->attributes[$other])) + { + return $this->validate_required($attribute, $value); + } + + return true; + } + /** * Validate that an attribute has a matching confirmation attribute. *