2014-11-25 6 views
0

Я создаю REST API, используя Symfony 2.3 & FOSRestBundle.symfony2 пользовательское имя ввода

ли кто-нибудь знает, как ключей параметров подгоняют POST, так что, например: "company_mybundle_user [FirstName] = {значение}" становится

«ПгвЬЫат = {значение} ".

Последние не будет работать из-за форму проверки внутри "postUsersAction ($ запроса Request)":

// src/Company/MyBundle/Controller/UserController.php 
// ... 
public function postUsersAction(Request $request) 
{ 
    $entity = new User(); 
    $form = $this->createCreateForm($entity); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($entity);   
     $em->flush(); 
     $view = new View($entity);  
    } else { 
     $view = View::create($form);  
    } 
    return $this->get('fos_rest.view_handler')->handle($view); 
} 

Спасибо за вашу помощь !!

ответ

0

Решение найдено:

Пустое значение, возвращаемое "UserType :: GetName()" будут удалены префиксы параметров. Следовательно, "company_mybundle_user [LastName]" становится LastName

До:

// src/Company/MyBundle/Form/UserType.php 
// ... 
public function getName() 
{ 
    return 'company_mybundle_user'; 
} 

После:

// src/Company/MyBundle/Form/UserType.php 
// ... 
public function getName() 
{ 
    return ''; 
} 

PS: убедитесь, чтобы очистить кэш перед тестированием:

php app/console cache:clear 
+0

Если у вас есть лучшее решение, поделитесь :) –

+0

Насколько я знаю, вы можете оставить имя формы как 'company_mybundle_user' и отправить данные запроса с помощью' $ form-> submit ($ request-> get ($ form- > getName())) 'а не' $ form-> handleRequest() '(какой тип делает то же самое, но с немного большей вовлеченностью .. $ _FILES и что не ... я думаю). – qooplmao

+0

FYI: Помните, что если вы удалите имя, вы не сможете стилизовать каждый блок отдельно в Twig и расширить формы, получив Parent! –

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