Add support for associative arrays using 'in'

This commit is contained in:
Vance Lucas 2013-08-30 10:31:57 -05:00
parent f0e08fbc06
commit 5dc7fd9fb3
2 changed files with 15 additions and 0 deletions

View File

@ -226,6 +226,10 @@ class Validator
*/
protected function validateIn($field, $value, $params)
{
$isAssoc = array_values($params[0]) !== $params[0];
if($isAssoc) {
$params[0] = array_keys($params[0]);
}
return in_array($value, $params[0]);
}

View File

@ -182,6 +182,17 @@ class ValidateTest extends BaseTestCase
$this->assertTrue($v->validate());
}
public function testInValidAssociativeArray()
{
$v = new Validator(array('color' => 'green'));
$v->rule('in', 'color', array(
'red' => 'Red',
'green' => 'Green',
'blue' => 'Blue'
));
$this->assertTrue($v->validate());
}
public function testInInvalid()
{
$v = new Validator(array('color' => 'yellow'));