小枝テンプレートのチェックボックスを確認するのに問題があります。小枝で、私はこれをしたいです:
{% for activity in form.activity %}
{% if (activity.isChecked) %}
<div>
{{ form_widget(activity) }}
{{ form_label(activity) }}
</div>
{% endif %}
{% endfor %}
アクティビティは、フォームビルダーのエンティティフィールドです。
->add('activity', 'entity', array(
'class' => 'AcmeProspectionBundle:Activity',
'expanded' => true,
'multiple' => true,
'property' => 'name',
/*
'query_builder' => function(EntityRepository $er) use($options) {
return $er->createQueryBuilder('ac')
->leftJoin('ac.company','c')
->where('c = :id')
->orderBy('ac.name', 'ASC')
->setParameter('id', $options['company_id']);
}
*/
))
実際、 query_builder部分にコメントを付けないと、チェックされた部分のみが生成されますが、これを行うと、Symfonyは元の配列と送信配列の整合性をチェックします。新しいアクティビティを追加できません。実際、私は次のようにjavascriptで選択肢を生成します。
<div class="activity_checkbox" data-prototype='<div>
<input type="checkbox" checked="checked" value="100" placeholder="" name="acme_prospection_company[activity][]">
<label></label></div>'>
原因3000を超える選択肢があり、元のチェックボックスを使用することも、ユーザーにそれを許可するように選択することもできません。これですべての作業が完了し、チェックしたアクティビティをレンダリングするだけで済みます。そして、私は方法がわかりません。