我在表单中使用实体select列表。 我只想使用特定的实体(例如:只有用户所属的组)。所以,在控制器中,我得到这些组,并试图将它们传递给formBuider 。 控制器: /…/ $groups = $em->getRepository('VendorMyBundle:Group')->getUserGroups($user); $form = $this->createForm(new Message($groups), $message); /…/ 所以现在怎么办? 如何在formBuilder中使用它? 如何改变这一行以使用传递的数组? ->add('group','entity',array('class' => 'Vendor\MyBundle\Entity\Group', 'label'=>'Group:')) 或者以另一种方式: class MessageType { /…/ public function buildForm(FormBuilder $builder, array $options) { $builder ->add('group','entity', array( 'class' => 'Vendor\MyBundle\Entity\Group', 'property' => 'name', 'query_builder' => function ($repository) { $qb = $repository->createQueryBuilder('group'); $qb->add('where', 'group.administrator = :user'); $qb->setParameter('user', […]
我仍然在学习Symfony2,不明白如何上传文件。 别担心,我已经检查了文件 。 这真的很好,但我的问题没有在任何教程中解释。 我正在寻找如何上传与Symfony2文件,但与所有人都需要的东西(如扩展的约束,基于ID和东西的文件重命名,存储在path中的数据库等)的指导…) 我发现很好的教程,试图混合他们,但没有成功。 每次出现不同的问题:文件在表单上的每一个提交上重新上传(即使文件字段为空),guessExtension不可能使用,tmppath存储在数据库而不是正确的path,文件不移动,不可能在重命名中使用了id,因为id是自动递增的,所以还没有生成)。 所以,我会把一个“标准”的实体,说:Photo.php /** * Photo * * @ORM\Table(name="photo") * @ORM\Entity * @ORM\HasLifecycleCallbacks */ class Photo { // Annotation for the id and auto increment etc private $id; /** * @var string * @Assert\File( maxSize = "3072k", mimeTypesMessage = "Please upload a valid Image") * @ORM\Column(name="image", type="string", length=245, nullable=false) */ […]
如何使用Symfony2的FormBuilder将HTML class属性设置为<input>forms? 像这样的东西: ->add('birthdate', 'date',array( 'input' => 'datetime', 'widget' => 'single_text', 'attr' => array( 'class' => 'calendar' ) )) {{ form_widget(form.birthdate) }} 我想要这个input字段的属性class设置为日历