public function validateAddress($address) { //@TODO: properly check all types.. strings need to be double checked for alnum, cause of typecasting. $rules = v::key('firstname', v::notEmpty()->setName('First name'))->key('lastname', v::notEmpty()->setName('Last name'))->key('address', v::alnum(".,-'")->notEmpty()->setName('Address'))->key('secondary_address', v::when(v::notEmpty(), v::alnum(".,-'"), v::alwaysValid())->setName('Address 2'))->key('city', v::alnum()->notEmpty()->setName('City'))->key('state', v::alnum()->notEmpty()->setName('State'))->key('zip', v::when(v::notEmpty(), v::postalCode('US'), v::alwaysValid())->notEmpty()->setName('Zipcode')); if ($rules->validate($address)) { return true; } try { $rules->check($address); } catch (ValidationExceptionInterface $exception) { // $this->error = $exception->getMainMessage(); } return false; }
public function __construct($data) { parent::__construct(); $this->data = $data; $this->fields = array('firstname' => array('value' => $this->data['firstname'], 'validators' => array('notEmpty'), 'errors' => array('Firstname is empty')), 'email' => array('value' => $this->data['email'], 'validators' => array('email', 'notEmpty'), 'errors' => array('Email is not valid', 'Email is empty')), 'url' => array('value' => $this->data['url'], 'validators' => array('notEmpty', 'url'), 'errors' => array('Url is empty', 'Url is not valid')), 'cv' => array('value' => $_FILES['cv'], 'validators' => function () { return v::exists()->validate($_FILES['cv']["tmp_name"]); }, 'errors' => array('File is empty')), 'content' => array('value' => $this->data['content'], 'validators' => function ($value) { return v::when(v::int(), v::positive(), v::notEmpty())->validate($value); }, 'errors' => array('content is not valid')), 'int' => array('value' => $this->data['int'], 'validators' => function ($value) { return v::allOf(v::int(), v::positive(), v::notEmpty())->validate($value); }, 'errors' => array('int is not valid')), 'uppercase' => array('value' => '', 'validators' => function ($value) { return v::string()->uppercase()->validate($value); }, 'errors' => array('uppercase is not valid'))); }