Added required_with validation rule to conditionally require an attribute based on the presence of another attribute

Signed-off-by: Jason Walton <jwalton512@gmail.com>
This commit is contained in:
Jason Walton 2012-06-11 09:18:42 -07:00
parent 14868a5fd5
commit 6881bdaf02
2 changed files with 25 additions and 1 deletions

View File

@ -63,6 +63,9 @@ #### Validate that an attribute is present and is not an empty string:
'name' => 'required'
#### Validate that an attribute is present, when another attribute is present:
'last_name' => 'required_with:first_name'
<a name="rule-alpha"></a>
### Alpha, Alpha Numeric, & Alpha Dash

View File

@ -214,7 +214,7 @@ protected function validatable($rule, $attribute, $value)
*/
protected function implicit($rule)
{
return $rule == 'required' or $rule == 'accepted';
return $rule == 'required' or $rule == 'accepted' or $rule == 'required_with';
}
/**
@ -257,6 +257,27 @@ protected function validate_required($attribute, $value)
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.
*