0

ユーザーが1つのチェックボックスを変更できないようにする簡単な方法があるかどうか疑問に思っていました(Symfony 2.1)。私はこのようなことを試みていました:

     $builder->add('adminRoles', 'entity',  array(
            'property' => 'roleName',
            'class' => 'MyBundle:Role',
            'query_builder' => function(EntityRepository $er) {
                return $er->createQueryBuilder('r')
                    ->orderBy('r.roleName', 'ASC');
            },
            'disabled' => $this->disabledRoles,
            'expanded' => true,
            'multiple'  => true
     ));

$this->disabledRoles とは、Role エンティティまたはエンティティ自体の ID の配列を意味していましたが、すべてのエンティティ (チェックボックス) に適用されるブール値を受け入れるだけのようです。アドバイスありがとうございます :-)

4

1 に答える 1

0

個々の要素をカスタマイズするには、フォーム リスナーを追加する必要があります。 http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

大変な作業のように思えるかもしれませんが、例を見ていくと簡単です。最終的には、disabledRoles をリスナーに渡し、それに応じて無効フラグを設定します。

于 2013-04-25T12:27:13.337 に答える