多対多のチェックボックスがたくさんあるフォームがあります。フォームは問題なく保存されますが (確認のためにデータベースをチェックしました)、チェックボックスはデータベースに合わせてチェックされていません。
チェックボックスをオンのままにするために何か特別なことをする必要がありますか?
これが私のフォーム定義です:
<?php
namespace VNN\PressboxBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class PreferencesSportsICareAboutType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('interestingSports', 'entity', array(
'multiple' => true,
'expanded' => true,
'property' => 'name',
'class' => 'VNN\PressboxBundle\Entity\Sport',
'query_builder' => function(\VNN\PressboxBundle\Repository\SportRepository $er) {
return $er->createQueryBuilder('s')
->orderBy('s.name', 'ASC');
},
));
}
public function getName()
{
return 'vnn_pressboxbundle_preferencessportsicareabouttype';
}
}
そして、ここに私のテンプレートの関連部分があります:
{% block form %}
<h2>Sports I Care About</h2>
<form action="{{ path('user_update_preferences', { 'sectionName': sectionName }) }}" method="post" {{ form_enctype(form) }} novalidate class="clearfix">
{% for error in errors %}
error: {{ error.messageTemplate }}
{% endfor %}
{% for field in form.interestingSports %}
<li>
{{ form_widget(field) }}
{{ form_label(field) }}
</li>
{% endfor %}
{{ form_rest(form) }}
<p><button type="submit">Submit</button></p>
</form>
{% endblock %}