symfony2自定义输入名称

时间:2014-11-25 15:21:49

标签: rest symfony symfony-2.3

我正在使用Symfony 2.3&amp ;;构建REST API。 FOSRestBundle。

有人知道如何自定义POST参数键,例如: " company_mybundle_user [firstName] = {value}" 成为

"的firstName = {}值"

后者不会起作用,因为内部的表单验证" postUsersAction(Request $ 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);
}

感谢您的帮助!!

1 个答案:

答案 0 :(得分: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