added same and different validation rules.

This commit is contained in:
Taylor Otwell 2012-02-03 11:02:54 -06:00
parent d462a72981
commit 554d390f1e
2 changed files with 36 additions and 4 deletions

View File

@ -29,6 +29,7 @@
"string" => "The :attribute must be between :min - :max characters.",
),
"confirmed" => "The :attribute confirmation does not match.",
"different" => "The :attribute and :other must be different.",
"email" => "The :attribute format is invalid.",
"exists" => "The selected :attribute is invalid.",
"image" => "The :attribute must be an image.",
@ -49,6 +50,7 @@
"not_in" => "The selected :attribute is invalid.",
"numeric" => "The :attribute must be a number.",
"required" => "The :attribute field is required.",
"same" => "The :attribute and :other must match.",
"size" => array(
"numeric" => "The :attribute must be :size.",
"file" => "The :attribute must be :size kilobyte.",

View File

@ -253,9 +253,7 @@ protected function validate_required($attribute, $value)
*/
protected function validate_confirmed($attribute, $value)
{
$confirmed = $attribute.'_confirmation';
return isset($this->attributes[$confirmed]) and $value == $this->attributes[$confirmed];
return $this->validate_same($attribute, $value, array($attribute.'_confirmation'));
}
/**
@ -272,6 +270,36 @@ protected function validate_accepted($attribute, $value)
return $this->validate_required($attribute, $value) and ($value == 'yes' or $value == '1');
}
/**
* Validate that an attribute is the same as another attribute.
*
* @param string $attribute
* @param mixed $value
* @param array $parameters
* @return bool
*/
protected function validate_same($attribute, $value, $parameters)
{
$other = $parameters[0];
return isset($this->attributes[$other]) and $value == $this->attributes[$other];
}
/**
* Validate that an attribute is different from another attribute.
*
* @param string $attribute
* @param mixed $value
* @param array $parameters
* @return bool
*/
protected function validate_different($attribute, $value, $parameters)
{
$other = $parameters[0];
return isset($this->attributes[$other]) and $value != $this->attributes[$other];
}
/**
* Validate that an attribute is numeric.
*
@ -727,7 +755,9 @@ protected function attribute($attribute)
// If no language line has been specified for the attribute, all of
// the underscores will be removed from the attribute name and that
// will be used as the attribtue name in the message.
$display = Lang::line("{$bundle}validation.attributes.{$attribute}")->get($this->language);
$line = "{$bundle}validation.attributes.{$attribute}";
$display = Lang::line($line)->get($this->language);
return (is_null($display)) ? str_replace('_', ' ', $attribute) : $display;
}