2016-12-08 6 views
0

私は2つのエンティティを持っています:SupplierとCategoryはManyToManyに参加しました。エンティティからサブカテゴリを表示する方法は?

次に、私はEntityType::classを追加するフォームビルダークラスを持っています。

カテゴリー構造:私は(小枝テンプレートに)構造のカテゴリを表示する必要が

id, categoryName, parentId - where parentIds value can be: 
0 - head category 
1 - subcategory 
etc 

Category1 
    Subcategory1 
    Subcategory2 
Category2 
    Subcategory3 
    Subcategory4 

等カテゴリヘッダ及びサブカテゴリのいくつかの種類であるチェックボックスです。

誰かにこのことを伝える方法を教えてください。

+0

だから、唯一のサブカテゴリがサプライヤに添付されています。一緒に

// ... 'query_builder' => function (EntityRepository $er) { return $er ->createQueryBuilder('c') ->where('c.parentId = 1') ; }, 

:ような何か? - parentIds値とすることができる(カテゴリーは、ヘッドカテゴリまたはサブカテゴリである場合PARENTIDが判断) ID、カテゴリ名、PARENTID:このような構造を有する – Yoshi

+0

カテゴリ 0 - ヘッドカテゴリ 1 - 等サブカテゴリ – Dakotha

+0

は、どのように私はに反応すべきですそれ?あなたは質問を投稿し、私はさらに情報を得ようとします、あなたは質問から同じ情報を繰り返すことによって答えます。私があなたを助けるのを助けてください... – Yoshi

答えて

0

次は私のテスト環境で働いていた私たちは、コメントで議論するものでビル:フォームのカスタマイズせずに、これが唯一のヘッダーなしのチェックボックスをレンダリングするでしょうけれども

->add('categories', EntityType::class, [ 
    'class' => Category::class, 
    'choice_label' => 'name', 
    'group_by' => 'parent', 
    'multiple' => true, 
    'expanded' => true 
]) 

SupplierType::buildForm

。これは、ここで議論されていますhttps://github.com/symfony/symfony/issues/5489#issuecomment-194943922

MaxE17677によって修正を実装ビューは次のように何かになります:

{% extends 'base.html.twig' %} 

{% form_theme form _self %} 

{# @see: https://github.com/symfony/symfony/issues/5489#issuecomment-194943922 #} 
{%- block choice_widget_expanded -%} 
    <div {{ block('widget_container_attributes') }}> 
     {% for name, choices in form.vars.choices %} 
      {% if choices is iterable %} 
       <label class="choice_category"> 
        <strong> 
         {{ choice_translation_domain is same as(false) ? name : name|trans({}, choice_translation_domain) }} 
        </strong> 
       </label> 
       <div> 
        {% for key,choice in choices %} 
         {{ form_widget(form[key]) }} 
         {{ form_label(form[key]) }} 
        {% endfor %} 
       </div> 
      {% else %} 
       {{- form_widget(form[name]) -}} 
       {{- form_label(form[name], null, {translation_domain: choice_translation_domain}) -}} 
      {% endif %} 
     {% endfor %} 
{%- endblock choice_widget_expanded -%} 

{% block body %} 
    <div class="container"> 
     {{ form_start(form) }} 
      {{ form_row(form.categories) }} 
     {{ form_end(form) }} 
    </div> 
{% endblock %} 

プレビュー

Preview


重要なことは、のgroup_by機能を使用していることです。これを現在のエンティティで使用するには、query_builderの設定をEntityTypeとする必要があります。

​​
+0

私はこれを数時間で確認しますが、私はたくさん。よし、ありがとう。 – Dakotha

関連する問題