我是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保持为空。 我不明白为什么。
感谢您的帮助,
答案 0 :(得分:0)
我认为你只需要将数据设置为实体(我个人使用表单处理程序来保持逻辑分离),如:
$entity->setOrganizer($form->get('organizer')->getData());
依旧......