fozzy
@fozzy

Symfony embedded forms

Есть схема:
News:
actAs:
I18n:
fields: [title, content]
Timestampable: ~
columns:
title:
type: string(255)
notnull: true
content:
type: clob
notnull: true


Doctrine соответственно создает 2 класса формы: NewsForm и NewsTranslationForm

В NewsForm делаю $this->embedI18n(array('ru', 'uk'));

Валидация основной формы должна проходить при успешной валидации одной из embed форм.

Как такое реализовать?

Пробовал следующее:

NewsForm
....
$this->getValidatorSchema()->setPostValidator(
new sfValidatorOr(array(
$this->getValidator('ru')->getPostValidator(),
$this->getValidator('uk')->getPostValidator(),
))
);
.....


NewsTranslationForm
$this->setValidators(array(
'title' => new sfValidatorPass(),
'content' => new sfValidatorPass(),
));

$this->validatorSchema->setPostValidator(
new sfValidatorAnd(array(
new sfValidatorSchemaFilter('title', new sfValidatorString(array('max_length' => 255))),
new sfValidatorSchemaFilter('content', new sfValidatorString())
)));


В этом варианте почему то не срабатывает sfValidatorOr основной формы.
P.S. Symfony 1.4.8 with Doctrine ORM
  • Вопрос задан
  • 2824 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы