本文整理汇总了PHP中Zend\Validator\AbstractValidator::hasDefaultTranslator方法的典型用法代码示例。如果您正苦于以下问题:PHP AbstractValidator::hasDefaultTranslator方法的具体用法?PHP AbstractValidator::hasDefaultTranslator怎么用?PHP AbstractValidator::hasDefaultTranslator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Validator\AbstractValidator
的用法示例。
在下文中一共展示了AbstractValidator::hasDefaultTranslator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isValid
/**
* Validate element value
*
* If a translation adapter is registered, any error messages will be
* translated according to the current locale, using the given error code;
* if no matching translation is found, the original message will be
* utilized.
*
* Note: The *filtered* value is validated.
*
* @param mixed $value
* @param mixed $context
* @return boolean
*/
public function isValid($value, $context = null)
{
$this->setValue($value);
$value = $this->getValue();
if (('' === $value || null === $value) && !$this->isRequired() && $this->getAllowEmpty()) {
return true;
}
if ($this->isRequired() && $this->autoInsertNotEmptyValidator() && !$this->getValidator('NotEmpty')) {
$validators = $this->getValidators();
$notEmpty = array('validator' => 'NotEmpty', 'breakChainOnFailure' => true);
array_unshift($validators, $notEmpty);
$this->setValidators($validators);
}
// Find the correct translator. Zend\Validator\AbstractValidator::getDefaultTranslator()
// will get either the static translator attached to Zend\Validator\AbstractValidator
// or the 'Zend_Translate' from Zend\Registry.
if (AbstractValidator::hasDefaultTranslator() && !Form::hasDefaultTranslator()) {
$translator = AbstractValidator::getDefaultTranslator();
if ($this->hasTranslator()) {
// only pick up this element's translator if it was attached directly.
$translator = $this->getTranslator();
}
} else {
$translator = $this->getTranslator();
}
$this->_messages = array();
$this->_errors = array();
$result = true;
$isArray = $this->isArray();
foreach ($this->getValidators() as $key => $validator) {
if (method_exists($validator, 'setTranslator')) {
if (method_exists($validator, 'hasTranslator')) {
if (!$validator->hasTranslator()) {
$validator->setTranslator($translator);
}
} else {
$validator->setTranslator($translator);
}
}
if (method_exists($validator, 'setDisableTranslator')) {
$validator->setDisableTranslator($this->translatorIsDisabled());
}
if ($isArray && is_array($value)) {
$messages = array();
$errors = array();
foreach ($value as $val) {
if (!$validator->isValid($val, $context)) {
$result = false;
if ($this->_hasErrorMessages()) {
$messages = $this->_getErrorMessages();
$errors = $messages;
} else {
$messages = array_merge($messages, $validator->getMessages());
$errors = array_merge($errors, $validator->getErrors());
}
}
}
if ($result) {
continue;
}
} elseif ($validator->isValid($value, $context)) {
continue;
} else {
$result = false;
if ($this->_hasErrorMessages()) {
$messages = $this->_getErrorMessages();
$errors = $messages;
} else {
$messages = $validator->getMessages();
$errors = array_keys($messages);
}
}
$result = false;
$this->_messages = array_merge($this->_messages, $messages);
$this->_errors = array_merge($this->_errors, $errors);
if ($validator->zfBreakChainOnFailure) {
break;
}
}
// If element manually flagged as invalid, return false
if ($this->_isErrorForced) {
return false;
}
return $result;
}
示例2: testDefaultTranslatorMethods
public function testDefaultTranslatorMethods()
{
$this->assertFalse(AbstractValidator::hasDefaultTranslator());
$this->assertNull(AbstractValidator::getDefaultTranslator());
$this->assertEquals('default', AbstractValidator::getDefaultTranslatorTextDomain());
$this->assertFalse($this->validator->hasTranslator());
$translatorMock = $this->getMock('Zend\\I18n\\Translator\\Translator');
AbstractValidator::setDefaultTranslator($translatorMock, 'foo');
$this->assertEquals($translatorMock, AbstractValidator::getDefaultTranslator());
$this->assertEquals($translatorMock, $this->validator->getTranslator());
$this->assertEquals('foo', AbstractValidator::getDefaultTranslatorTextDomain());
$this->assertEquals('foo', $this->validator->getTranslatorTextDomain());
$this->assertTrue(AbstractValidator::hasDefaultTranslator());
}