* If the field is set to `null`, this means the user intends to delete it so it would return `true`. */ Validator::add('allowedFileType', function ($value, $rule, $options) { $defaults = ['skipEmpty' => false, 'required' => true, 'validateInCli' => false]; $options += $defaults; if ($options['skipEmpty'] === true || $options['required'] === false) { return true; } if (!$options['validateInCli'] && PHP_SAPI === 'cli') { return true; } if (!isset($_FILES[$options['field']]['error']) && null === $_FILES[$options['field']]) { return true; } $uploaded = $_FILES[$options['field']]; return Validator::isInList($uploaded['type'], null, ['list' => $options['allowed']]); }); /** * Checks to see if image dimensions are valid. * Both, width and height, are optional and will only be checked against if they are specified. * * In your model: * {{{ * public $validates = [ * 'avatar' => [ * [ * 'dimensions', * 'width' => 45, * 'height' => 45, * 'message' => 'The image dimensions must be 45 x 45' * ]
/** * Tests 'inList' validation. */ public function testInList() { $this->assertTrue(Validator::isInList('one', null, array('list' => array('one', 'two')))); $this->assertTrue(Validator::isInList('two', null, array('list' => array('one', 'two')))); $this->assertFalse(Validator::isInList('3', null, array('list' => array('one', 'two')))); $this->assertFalse(Validator::isInList('', null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList(null, null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList(false, null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList(true, null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList('', null, array('list' => array(0, 1)))); $this->assertFalse(Validator::isInList(null, null, array('list' => array(0, 1)))); $this->assertFalse(Validator::isInList(false, null, array('list' => array(0, 1)))); $this->assertFalse(Validator::isInList(true, null, array('list' => array(0, 1)))); $this->assertTrue(Validator::isInList(0, null, array('list' => array(0, 1)))); $this->assertTrue(Validator::isInList(1, null, array('list' => array(0, 1)))); $this->assertFalse(Validator::isInList(2, null, array('list' => array(0, 1)))); $this->assertTrue(Validator::isInList(0, null, array('list' => array('0', '1')))); $this->assertTrue(Validator::isInList('1', null, array('list' => array('0', '1')))); $this->assertTrue(Validator::isInList(1, null, array('list' => array('0', '1')))); $this->assertTrue(Validator::isInList('1', null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList(2, null, array('list' => array('0', '1')))); $this->assertFalse(Validator::isInList('2', null, array('list' => array('0', '1')))); }
/** * Tests 'inList' validation. * * @return void */ function testInList() { $this->assertTrue(Validator::isInList('one', null, array('list' => array('one', 'two')))); $this->assertTrue(Validator::isInList('two', null, array('list' => array('one', 'two')))); $this->assertFalse(Validator::isInList('3', null, array('list' => array('one', 'two')))); }