【问题标题】:Symfony2: Processing form with relational doctrine dataSymfony2:使用关系学说数据处理表单
【发布时间】:2011-09-02 13:53:19
【问题描述】:

我正在 S2 中构建简单的 CMS,并且在处理文章形式的关系类别方面没有什么问题。

CategoryType 和操作的代码:http://codepaste.net/ahyoig 都与 Symfony 网站上的教程/手册中的一样。

表单看起来不错,但是当我处理数据时(也像在手册中一样),我收到错误:“选择字段中的类型为数组的预期参数,给定的字符串”,我现在不知道如何解决它。

【问题讨论】:

    标签: forms symfony doctrine-orm


    【解决方案1】:

    我认为您的问题是因为您将选项multiple 设置为false。这意味着表单类型将返回一个字符串值(因为您将multiple 设置为false,这是一个单一值),但您的关系可能设置为多对多关系。

    multiple 选项设置为true 将向您的对象发送一个数组而不是字符串,这是应用程序所期望的。然后,如果您不喜欢 HTML 中 CategoryType 的列表框外观,您可以在 Symfony2 中使用 form theming 以不同方式呈现它。

    希望这会有所帮助, 马特

    【讨论】:

      【解决方案2】:

      您不需要 CategoryType。 $categories 数组的创建也是没用的。

      最好的选择是使用原生实体表单类型:

      <?php
      
      use Doctrine\ORM\EntityRepository;
      
      //...
      
      $article = new Article();
      
      $form = $this->get('form.factory')
                  ->createBuilder('form',$article)
                  ->add('category', 'entity', array
                  (
                      'class' => 'CMSBackBundle:Category',
                      'query_builder' => function(EntityRepository $er)
                      {
                          return $er->createQueryBuilder('c')
                                  ->orderBy('c.title', 'ASC');
                      },
                      'expanded' => false,
                      'multiple' => false
                  )
                  // ...
                  ->getForm();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-22
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 2014-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多