удаление имени формы из поля сообщения в symfony2 - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь использовать symfony2 для создания веб-сервиса.Я бы хотел, чтобы веб-сервис был структурирован и прослушивал:

POST в / команды / список с параметрами key1 = value и key2 = value2

Для целей проверки я создал TeamFormобъект и TeamFormModel для проверки данных (с использованием аннотаций).У меня проблема в том, что форма ищет team [key1] и team [key2] вместо просто key1 и key2 для привязки к TeamFormModel.

Есть ли способ настроить форму, чтобы не использовать команду [*]?

Ответы [ 2 ]

6 голосов
/ 30 марта 2012

Если вы используете ветку 2.1 , вы можете просто создать форму с пустым именем.

$form = $this->get('form.factory')->createNamed(
    '',             // the name
    new TeamType(), // the type
    $team           // the data
);
$form->bindRequest($request);

Так что она будет работать так, как вы ожидаете.

Но если вы используете ветку 2.0 , насколько я знаю, она не поддерживается, и вы должны выполнить привязку вручную:

$form = $this->createForm(new TeamType(), $team);
$from->bind($request->request->all());
2 голосов
/ 30 марта 2012

Вы можете проверить сущность, не создавая форму. Вы можете создать объект сущности из данных POST и передать его валидатору. См. проверка раздел поваренной книги.

Если вам не нравится каждый раз создавать объект сущности из параметров запроса, вы можете опубликовать данные в формате json или xml и затем десериализовать в объект сущности, используя JMSSerializerBundle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...