2012-01-23 2 views
2

У меня есть Пользователь и сообщение с отношением друг к другу.Проверка связанного объекта по его названию

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

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

Благодаря

ответ

0

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

Чтобы установить ошибки формы, это легко: $ form-> addError (новый FormError («Сообщение»));

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

1

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

use Symfony\Component\Form\FormError; 

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

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

Смежные вопросы