J'essaie de sauver des entités de 2 classes sous 1 forme J'ai lu this article à ce sujet. Mon code est:Symfony2.3, Entité relationnelle sous 1 forme
class MeetingType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('meetingDay', 'text', array('label' => 'Dzień zbiórki'))
->add('meetingTime', 'text', array('label' => 'Godzina zbiórki'))
->add('congregation', 'entity', array(
'class' => 'ViszmanCongregationBundle:Congregation',
'property' => 'name', 'label' => 'Zbór'
));
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Viszman\CongregationBundle\Entity\Meeting'
));
}
/**
* @return string
*/
public function getName()
{
return 'viszman_congregationbundle_meeting';
}
}
Et un autre type:
class CongregationType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$plDays = array('day1', 'day1', 'day1', 'day1', 'day1', 'day1', 'day1');
$builder
->add('name', 'text', array('label' => 'Name'))
->add('meetingDay', 'choice', array('label' => 'meeting day', 'choices' => $plDays))
->add('meetings','collection', array('type' => new MeetingType(), 'allow_add' => true))
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Viszman\CongregationBundle\Entity\Congregation'
));
}
/**
* @return string
*/
public function getName()
{
return 'viszman_congregationbundle_congregation';
}
}
Et quand j'essaie ne rendre ce formulaire, je ne reçois que CongregationType
et aucune forme MeetingType
. partie du Code responsable du rendu sous forme est:
<h1>Congregation creation</h1>
{{ form_start(form) }}
{{ form_widget(form) }}
<h3>Meetings</h3>
<ul class="tags" data-prototype="{{ form_widget(form.meetings.vars.prototype)|e }}">
{{ form_widget(form.meetings) }}
</ul>
{{ form_end(form) }}
Pour les débutants, form_widget (form) affichera le reste de tous les widgets de formulaire, y compris form.meetings. Deuxièmement, dans l'objet $ congrégation que vous transmettez à CongregationFormType, existe-t-il des objets de réunion? Si vous n'en passez aucun, aucun ne sera rendu. – Cerad
de l'article que j'ai lu dans le site de symfony sur les formes incorporées, je comprends qu'il est de créer de nouveaux objets – Viszman
Le type de champ d'entité est pour la sélection d'une entité existante. – nifr