本文整理汇总了PHP中CValidator类的典型用法代码示例。如果您正苦于以下问题:PHP CValidator类的具体用法?PHP CValidator怎么用?PHP CValidator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CValidator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validateConditional
/**
*
* @param CModel $object the object to be validated
* @param mixed $rule the rules to validate the object against
* @return boolean false if it has errors, true otherwise
*/
protected function validateConditional(&$object, $rule)
{
if (isset($rule['group'])) {
if (is_array($rule['group'])) {
foreach ($rule['group'] as $r) {
if (is_array($r)) {
$val = $this->validateConditional($object, $r);
if (!$val) {
return false;
}
} else {
continue;
}
}
} else {
throw new \CException(\Yii::t('EConditionalValidator', 'Group must be an array of rules'));
}
} else {
list($attributes, $conditionalValidator) = $rule;
$parameters = array_splice($rule, 2);
$validator = \CValidator::createValidator($conditionalValidator, $object, $attributes, $parameters);
$validator->validate($object);
if ($object->hasErrors()) {
$object->clearErrors();
return false;
}
}
return true;
}
示例2: beforeValidate
public function beforeValidate()
{
if (parent::beforeValidate()) {
$validator = CValidator::createValidator('unique', $this, 'district_name', array(
'criteria' => array(
'condition'=>'city_id=:city_id',
'params'=>array(
':city_id'=>$this->city_id
)
)
));
$validator2 = CValidator::createValidator('unique', $this, 'url', array(
'criteria' => array(
'condition'=>'city_id=:city_id',
'params'=>array(
':city_id'=>$this->city_id
)
)
));
$this->getValidatorList()->insertAt(0, $validator);
$this->getValidatorList()->insertAt(0, $validator2);
return true;
}
return false;
}
示例3: localConfigValueValidator
public function localConfigValueValidator($attribute, $params)
{
if ($this->type == self::TYPE_INT) {
$numericValidator = CValidator::createValidator('CNumberValidator', $this, $attribute, array('allowEmpty' => false, 'integerOnly' => true));
$numericValidator->validate($this);
}
}
示例4: actionAdmin
public function actionAdmin($id)
{
$model = new ContestEntry();
$model->contest_id = $id;
if (!($contest = Contest::model()->findByPk($id))) {
throw new CHttpException(404);
}
$fieldsValidators = '';
$i = 0;
foreach (ContestField::model()->with(array('multi' => array('index' => 'id')))->findAllByAttributes(array('contest_id' => $id)) as $field) {
if ($field->result && $field->type != 'title') {
$this->fields[] = array('title' => $field->title, 'type' => $field->type, 'multi' => $field->multi, 'id' => $field->id);
$fieldsValidators .= 'field_' . $i . ', ';
if (isset($_GET['ContestEntry'])) {
$model->{'field_' . $i} = $_GET['ContestEntry']['field_' . $i];
}
$i++;
}
}
$model->fields = $this->fields;
$validators = $model->getValidatorList();
$validators->add(CValidator::createValidator('safe', $this, substr($fieldsValidators, 0, -2)));
if (isset($_GET['ContestEntry'])) {
$model->id = $_GET['ContestEntry']['id'];
$model->created_at = $_GET['ContestEntry']['created_at'];
}
$this->render('admin', array('model' => $model, 'contest' => $contest));
}
示例5: validateAttribute
/**
* {@inheritDoc}
* @see CValidator::validateAttribute()
*/
public function validateAttribute($object, $attribute)
{
$array_to_validate = $object->{$attribute};
if (!is_array($array_to_validate)) {
$this->addError($object, $attribute, Yii::t('validator.array', 'The attribute "{attr}" is not an array.', array('{attr}' => $attribute)));
return;
}
if ($this->minElements !== null && count($array_to_validate) < $this->minElements) {
$this->addError($object, $attribute, Yii::t('validator.array', '{attribute} should contains at least {n} elements.', array('{n}' => $this->minElements)));
return;
}
if ($this->maxElements !== null && count($array_to_validate) > $this->maxElements) {
$this->addError($object, $attribute, Yii::t('validator.array', '{attribute} should contains at max {n} elements.', array('{n}' => $this->maxElements)));
return;
}
foreach ($this->rules as $rule) {
$name = $rule[0];
unset($rule[0]);
$validated_values = array();
// extract the values to validate from object
foreach ($array_to_validate as $key => $value) {
$object->{$attribute} = $value;
// for each value, set the attribute at this specific value
$validator = CValidator::createValidator($name, $object, array($attribute), $rule);
$validator->validate($object, array($attribute));
// get the validated values into another array
$validated_values[$key] = $object->{$attribute};
}
// set back the attribute array with the validated attributes
$object->{$attribute} = $validated_values;
}
}
示例6: actionCreate
public function actionCreate()
{
$model = new AttendanceAbsences();
$modelPhoto = new ImportForm();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['AttendanceAbsences'])) {
$model->attributes = $_POST['AttendanceAbsences'];
$modelPhoto->attributes = $_POST['ImportForm'];
$imgFile = CUploadedFile::getInstance($modelPhoto, 'file');
if ($_POST['command'] == 'save') {
$model->status = 'approved';
}
if ($model->doctor_note == 1) {
if (count($imgFile) == 0) {
$model->validatorList->add(CValidator::createValidator('letter_required', $model, 'doctor_letter_proof'));
}
}
if ($model->save()) {
if (count($imgFile) != 0) {
$imgFile->saveAs(letterPaths() . $model->id . '.jpg');
}
if ($_POST['command'] == 'save' && $model->type != 'Late') {
$model->savePresence();
}
$this->redirect(array('index'));
}
}
$this->render('create', array('model' => $model, 'modelPhoto' => $modelPhoto));
}
示例7: attach
public function attach($owner)
{
parent::attach($owner);
// Set up translatedAttributes.
foreach ($this->attributes as $attribute) {
foreach (Yii::app()->languageManager->suffixes as $suffix) {
$this->_translatedAttributes[] = $attribute . $suffix;
}
}
foreach ($this->_translatedAttributes as $varName) {
$this->{$varName} = null;
}
// Copying validation rules.
$rules = $owner->rules();
$validators = $owner->getValidatorList();
foreach (array_keys(Yii::app()->languageManager->languages) as $l) {
if ($l != Yii::app()->sourceLanguage) {
foreach ($this->attributes as $attr) {
foreach ($rules as $rule) {
$ruleAttributes = array_map('trim', explode(',', $rule[0]));
if (in_array($attr, $ruleAttributes)) {
$validators->add(CValidator::createValidator($rule[1], $this, $attr . '_' . $l, array_slice($rule, 2)));
}
}
}
}
}
}
示例8: myCaptcha
public function myCaptcha($attr, $params)
{
if (Yii::app()->request->isAjaxRequest) {
return;
}
CValidator::createValidator('captcha', $this, $attr, $params)->validate($this);
}
示例9: linkUnique
/**
* Проверка ссылки на уникальность
*
* @param string $attribute
* @param array $params
*/
public function linkUnique($attribute, $params = array())
{
if (!$this->hasErrors()) {
$params['criteria'] = array('condition' => 'link = :link AND gs_id = :gs_id', 'params' => array('link' => $this->link, 'gs_id' => $this->gs_id));
$validator = CValidator::createValidator('unique', $this, $attribute, $params);
$validator->validate($this, array($attribute));
}
}
示例10: files
public function files($attribute, $params)
{
$validator = CValidator::createValidator('file', $this, $attribute, $params);
foreach (CUploadedFile::getInstances($this, $attribute) as $file) {
$this->{$attribute} = $file;
$validator->validate($this, $attribute);
}
}
示例11: attach
public function attach($owner)
{
$validators = $owner->getValidatorList();
foreach ($this->rules() as $rule) {
$validators->add(CValidator::createValidator($rule[1], $owner, $rule[0], array_slice($rule, 2)));
}
parent::attach($owner);
}
示例12: uniqueLogin
public function uniqueLogin($attribute, $params = array())
{
if (!$this->hasErrors()) {
$params['criteria'] = array('condition' => 'login=:login', 'params' => array(':login' => $this->login));
$validator = CValidator::createValidator('unique', $this, $attribute, $params);
$validator->validate($this, array($attribute));
}
}
示例13: attach
public function attach($owner)
{
parent::attach($owner);
if (in_array($owner->scenario, $this->scenarios)) {
// добавляем валидатор файла
$fileValidator = CValidator::createValidator('file', $owner, $this->attributeName, array('types' => $this->fileTypes, 'allowEmpty' => true));
$owner->validatorList->add($fileValidator);
}
}
示例14: attach
/**
* Создание валидатора для загружаемого изображения
*/
public function attach($owner)
{
parent::attach($owner);
$this->simpleImage = Yii::app()->simpleImage;
if (in_array($owner->scenario, $this->scenarios)) {
$fileValidator = CValidator::createValidator('FileValidator', $owner, $this->attributeName, array('safe' => false, 'enableClientValidation' => true, 'allowEmpty' => true, 'maxSize' => $this->maxSize, 'types' => $this->fileTypes, 'mimeTypes' => $this->mimeTypes, 'tooLarge' => Yii::t('yii', 'Размер файла "{file}" слишком велик, он не должен превышать {limit}.')));
$owner->validatorList->add($fileValidator);
}
}
示例15: init
public function init()
{
parent::init();
if ($this->isInt()) {
$this->model->addValidator(CValidator::createValidator('numerical', $this->model, $this->attributeName, array('on' => 'backendInsert, backendUpdate')));
} else {
$this->model->addValidator(CValidator::createValidator('length', $this->model, $this->attributeName, array('on' => 'backendInsert, backendUpdate', 'max' => 255)));
}
}