6

Sonata admin で次の構造の 1 対多の関係を実装する際に問題があります。

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

このオプション: 'edit' => 'inline' を使用すると、'required' => true のように AdhesionAdmin で定義されたデフォルトの検証が失われました。

それで、どこかに指定する設定はありますか?sonata_type_collection の設定で 'cascade_validation' => true を追加しようとしましたが、変更されませんでした。

別の質問: sonata_type_collection でポップアップ編集フォームを使用できますか? ('編集' => '標準')

ポインタとヘルプは大歓迎です。ありがとうございました

4

2 に答える 2

15

cascade_validation を有効にする必要があります。次の方法で実行できます。

  class UserAdmin extends SonataUserAdmin  
  {    
     protected $formOptions = array(
        'cascade_validation' => true        
     );

     /* Rest of your admin class code */


  }
于 2013-04-12T14:57:14.797 に答える
9

代わりに、エンティティ プロパティに制約を使用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

于 2015-10-29T13:19:30.413 に答える