Symfony API POST:FormType无法正常工作的绑定请求

时间:2014-08-24 16:01:26

标签: api symfony bind

我是Simfony的新手,我有问题弄清楚为什么我的代码无效

在我的控制器中,我有一个管理我的API的Post请求的功能

public function postMyEventAction(Request $request)
    {


        $entity = new MyEvent();

        $form = $this->createForm(new MyEventType(), $entity);

        $form->bind($request);

        if ($form->isValid()) {

            $em = $this->getDoctrine()->getManager();
            $em->persist($entity);
            $em->flush();

.... 我的FormType

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class MyEventType extends AbstractType
{
        /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('organiser')
            ->add('token')
            ->add('event')
            ->add('persons')
        ;
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'EventManageBundle\Entity\MyEvent',
            'csrf_protection' => false
        ));
    }


}

当我用json post请求调用我的api时,$ entity保持为空。 我不明白为什么。

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

我认为你只需要将数据设置为实体(我个人使用表单处理程序来保持逻辑分离),如:

$entity->setOrganizer($form->get('organizer')->getData());

依旧......