을 선택 가능하고, 나는 사용자의 이메일의 테이블이 (내 데이터베이스에서 엔티티) :Symfony2 - 엔티티의 목록 내 Symfony2에서
{% for email in emails %}
...
{{ email.subject }}
...
{% endfor %}
이 나는 테이블을 배치하여 이러한 선택을하고 싶습니다 양식을 만들고 각 행에 체크 상자를 추가하십시오.
Symfony2에서 가장 좋은 방법은 무엇입니까? 난 단지 내가 이상적이지 보이는 유형, 내부 형 내부 유형을 만들 필요가 있다고 생각 할 수 있습니다
class SelectableEmailsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('selectableEmails', 'collection', [ 'type' => new SelectableEmailType() ]);
}
public function getName()
{
return 'selectableEmails';
}
}
class SelectableEmailType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('email', new EmailType());
$builder->add('selected', 'checkbox');
}
public function getName()
{
return 'selectableEmail';
}
}
class EmailType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('subject', 'text');
...
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
'data_class' => 'EmailOctopus\Bundle\ListsBundle\Entity\ListEntity',
]);
}
public function getName()
{
return 'email';
}
}
EMAILTYPE는 다른 형태로 사용되는 경우는 특히 무엇이 꽤 많이있다 :이 솔루션을 사용하여 체크 박스에 각 이메일의. 이런 종류의 중첩은 아주 일반적입니다. 물론 정말로해야 할 일은 전자 메일을 선택하는 것 (그리고 제목을 편집하지 않는 것)이면 EmailType이 필요하지 않습니다. – Cerad
@Cerad 감사합니다. 알고있는 것이 좋습니다. 전자 메일을 선택하기 만하면됩니다. 전자 메일 유형을 제거하면 엔티티를 어떻게 바인딩해야합니까? – Jonathan
이메일 엔티티는 수정하지 않으므로 바인딩 할 필요가 없습니다. 대신 vars 매개 변수를 사용하여 나뭇 가지 템플릿에서 직접 액세스 할 수 있습니다. {{selectableEmail.vars.email.subject}} – Cerad