Проверка связанного объекта по его имени - PullRequest
2 голосов
/ 23 января 2012

У меня есть Пользователь и Сообщение с отношением один ко многим.

При создании формы для сообщения я бы хотел, чтобы поле пользователя было строкой, чтобы вместо его идентификатора можно было вводить имя пользователя. Я добавил $ userName к классу сообщений, который не сохраняется, но мне нужно его проверить, получить правильный идентификатор и установить пользователя во время проверки формы. Поскольку использование entitymanager в Entities - плохая идея, я подумал, что эта проверка и пользовательские настройки должны выполняться в контроллере.

Мой вопрос: как я могу установить ошибки формы из контроллера, и я делаю это правильно? Любые советы?

Спасибо

Ответы [ 2 ]

1 голос
/ 23 января 2012

Примечание для всех, кому может быть интересно, как я это сделал:

use Symfony\Component\Form\FormError;

$field = $form->get('receiverName');
$field = $field->addError(new FormError('User dose not exist'));

Я выполняю проверку внутри контроллера и устанавливаю ошибку.

0 голосов
/ 23 января 2012

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

Установить ошибки формы очень просто: $ form-> addError (new FormError ("Message"));

С уважением. Y

...