ZF2 — сообщения об ошибках, возвращаемые элементом Fieldset, остаются непереведенными

Я использую ZF2 Fieldset для некоторых элементов формы.
Но проблема, с которой я сталкиваюсь, заключается в том, что в моем файле fieldset есть элемент типа Email. Когда этот элемент остается пустым, возвращается сообщение об ошибке, но не переведенное. Вместо этого он возвращает необработанное сообщение.

SampleForm.php

use Zend\Form\Form;
use Zend\I18n\Translator\TranslatorAwareInterface;
use Zend\I18n\Translator\TranslatorAwareTrait;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterAwareTrait;
use SampleFieldset;

class SampleForm extends Form implements
InputFilterAwareInterface,
TranslatorAwareInterface
{
use TranslatorAwareTrait;
use InputFilterAwareTrait;

/**
* Prepare form elements
* @param SampleFieldset $sampleFieldset
*/
public function __construct(
SampleFieldset $sampleFieldset,
) {
parent::__construct('sampleform');

$this->add(
array(
'attributes' => array(
'type' => 'textarea',
'id' => 'comments'
),
'name' => 'comments',
'options' => array(
'label' => 'Comments',
),
)
);

$this->add($sampleFieldset);

$this->add(
[
'name' => 'submit',
'type' => 'Submit',
'options' => [
'label' => 'Submit',
],
]
);
}
}

SampleFormFactory.php

use SampleForm;
use SampleFieldset;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\MutableCreationOptionsInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

class SampleFormFactory implements FactoryInterface, MutableCreationOptionsInterface
{
/** @var array */
protected $options = [];

/**
* {@inheritDoc}
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$rootLocator = $serviceLocator->getServiceLocator();

$form = new SampleForm(
$serviceLocator->get(SampleFieldset::class),
);

return $form;
}

/**
* {@inheritDoc}
*/
public function setCreationOptions(array $options)
{
$this->options = $options;
}
}

SampleFieldset.php

use Zend\Form\Fieldset;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterAwareTrait;
use Zend\Validator\Hostname;

class SampleFieldset extends Fieldset implements InputFilterAwareInterface
{
use InputFilterAwareTrait;

/**
* Constructor
*/
public function __construct()
{
parent::__construct('sample');

$this->add(
[
'type' => 'Zend\Form\Element\Email',
'name' => 'email',
'attributes' => [
'type' => 'email',
'id' => 'email'
],
'options' => [
'label' => 'Email address',
'label_attributes' => [
'data-required' => 'true',
'class' => 'label_med',
],
],
]
);
}
}

Теперь при отправке формы, так как поле электронной почты оставлено пустым, NotEmpty проверено и возвращено сообщение Значение является обязательным и не может быть пустым. Я хочу, чтобы эти сообщения были возвращены в форме перевода.

Примечание. Если я оставлю элемент комментария пустым и отправлю сообщение, возвращаемое сообщение об ошибке будет правильно переведено. Но это не относится к элементу электронной почты.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]