我是Symfony2的新手。我试图理解CRUD生成的代码的一部分。
在下面的代码中,我不明白为什么我们创建一个实体(new Image()
)。当我var_dump
时,里面的一切都是NULL。那它的作用是什么?为什么要在行动的回归中发送它?
public function newAction()
{
$entity = new Image();
$form = $this->createForm(new ImageType(), $entity);
var_dump($entity);
return array(
'entity' => $entity,
'form' => $form->createView(),
);
}
恕我直言,其他行动(创造)中的实例是合乎逻辑的。您的解释受到高度赞赏。
public function createAction(Request $request)
{
$entity = new Image();
$form = $this->createForm(new ImageType(), $entity);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('image_show', array('id' => $entity->getId())));
}
return array(
'entity' => $entity,
'form' => $form->createView(),
);
}
答案 0 :(得分:2)
createForm() helper的第二个参数应包含表单的初始数据。 它可能是一个实体,但也可能是一个数组。
除非您需要在模板中使用实体,否则您不需要从操作中返回实体。
createForm()
签名,
public Form createForm(string|FormTypeInterface $type, mixed $data = null, array $options = array())
其中,
mixed | $data | The initial data for the form