Fix #115 strict flag for in_array

This commit is contained in:
Vance Lucas 2014-11-20 09:24:40 -06:00
parent bd0f6868c8
commit c7342e025a
2 changed files with 13 additions and 1 deletions

View File

@ -350,13 +350,18 @@ class Validator
* @internal param array $fields
* @return bool
*/
protected function validateIn($field, $value, $params, $strict = false)
protected function validateIn($field, $value, $params)
{
$isAssoc = array_values($params[0]) !== $params[0];
if ($isAssoc) {
$params[0] = array_keys($params[0]);
}
$strict = false;
if (isset($params[1])) {
$strict = $params[1];
}
return in_array($value, $params[0], $strict);
}

View File

@ -273,6 +273,13 @@ class ValidateTest extends BaseTestCase
$this->assertTrue($v->validate());
}
public function testInStrictInvalid()
{
$v = new Validator(array('color' => '1'));
$v->rule('in', 'color', array(1, 2, 3), true);
$this->assertFalse($v->validate());
}
public function testArrayValid()
{
$v = new Validator(array('colors' => array('yellow')));