我使用AcmePizzaBundle的代码作为示例创建了一个包含两个实体的表单。
我有MyBundle/Entity/Factory/UploadFactory.php
这是表单的工厂类。除了两个实体(用户和视频)之外,还有第三个UploadType.php表单类:
// MyBundle/Form/Type/UploadType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('user', new UserType())
->add('video', new VideoType());
}
UserType()
和VideoType()
是表单类型类,并从各自的实体中保存必要的字段。
以上是从控制器/方法中调用的:
public function indexAction(){
// create upload
$factory = new UploadFactory();
$form = $this->createForm(new UploadType(), $factory);
}
用户和视频实体已注释验证。这在合并两个表单之前工作正常,但现在没有服务器端验证。
我认为验证没有通过,有没有办法强迫这个?
代码受到披萨捆绑代码https://github.com/beberlei/AcmePizzaBundle/blob/master/Entity/Factory/OrderFactory.php
的启发感谢。
编辑:
$factory = new UploadFactory();
var_dump($factory);
// gives...
object(Project\MyBundle\Entity\Factory\UploadFactory)#101 (3) {
["user":"Project\MyBundle\Entity\Factory\UploadFactory":private]=> NULL
["video":"Project\MyBundle\Entity\Factory\UploadFactory":private]=> NULL
}