【问题标题】:Sonata Admin type_collection & cascade validationSonata Admin type_collection 和级联验证
【发布时间】:2013-03-19 10:40:50
【问题描述】:

我在使用以下结构在奏鸣曲管理员中实现一对多关系时遇到问题。

->add('adhesions', 'sonata_type_collection', array('by_reference' => false,'required' => false), array(
    'edit' => 'inline',
    'inline' => 'table',
    'sortable'  => 'position',))

使用此选项:'edit' => 'inline',我丢失了在 AdhesionAdmin 中定义的默认验证,例如 'required' => true。

那么,有没有可以在某处指定的设置?我尝试在 sonata_type_collection 的设置中添加 'cascade_validation' => true 但它没有改变。

另一个问题:我可以使用带有 sonata_type_collection 的弹出编辑表单吗? ('编辑' => '标准')

非常感谢任何指针和帮助。谢谢

【问题讨论】:

    标签: validation symfony collections sonata-admin


    【解决方案1】:

    您必须启用 cascade_validation。你可以这样做:

      class UserAdmin extends SonataUserAdmin  
      {    
         protected $formOptions = array(
            'cascade_validation' => true        
         );
    
         /* Rest of your admin class code */
    
    
      }
    

    【讨论】:

    • 这可行,但出现全局错误。相关字段可能有错误吗?
    【解决方案2】:

    只需在您的实体属性上使用Valid 约束即可:

    /**
     * @var Object[]
     *
     * @ORM\OneToMany(targetEntity="AppBundle\Entity\Object", mappedBy="myEntity")
     * @Assert\Valid
     */
    private $objects;
    

    http://symfony.com/doc/current/reference/forms/types/collection.html#cascade-validation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2014-12-04
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多