0

Symfony2のフォームビルダーでエンティティタイプのフォーム要素を使用しています。

 ->add('categories', 'entity', array('required' => false,
            'multiple' => true,
            'expanded' => true,
            'label'=>'Categories (select all that apply)',
            'class' => 'AcmeBundle:Category',
            'query_builder' => function(EntityRepository $er) use ($profile) {
                return $er->createQueryBuilder('u')
                    ->where('u.profile = :profile')
                    ->setParameter('profile', $profile)
                    ->orderBy('u.name', 'ASC');
            }));

データベースクエリが値を返さない場合がありますが、Symfony2はそれでも要素のラベルを表示します。

表示するエンティティの結果がない場合、ラベルを完全に非表示にするにはどうすればよいですか?ありがとう!

4

2 に答える 2

1

関連する.twigファイルに次を追加します。

{% if not empty(entity.categories) %}
    {{ form_label(form.categories) }}
    {{ form_errors(form.categories) }}
    {{ form_widget(form.categories) }}
{% endif %}

空でない場合にのみ表示されます

于 2012-12-31T15:26:08.177 に答える
0

私の編集が拒否されたので、@alainivarsの答えを改善します。

関連する.twigファイルに次を追加します。

{% if not empty(entity.categories) %}
    {{ form_label(form.categories) }}
    {{ form_errors(form.categories) }}
    {{ form_widget(form.categories) }}
{% else %}
    {% do form.categories.setRendered %}
{% endif %}

空ではなく、フィールドにsetRenderedとマークされている場合にのみ表示されるため、form_restには表示されないため、問題は回避されます。

于 2013-07-12T07:40:01.127 に答える