Версия для Symfony: 3Symfony: Embeding Collection of Forms issue
Мне нужно создать форму, которая вставляет данные пользователя в две таблицы. Поэтому я следую методу this в документе Symfony. У меня есть два лица, называемые Пользователи и Адрес и я создал две формы строители, как показано ниже,
AddressType
class AddressType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('address');
$builder->add('postCode');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'PIE10Bundle\Entity\Address',
));
}
}
UserType
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstname');
$builder->add('lastname');
$builder->add('address',
CollectionType::class,
array(
'entry_type' => AddressType::class
));
$builder->add('Add User', SubmitType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'PIE10Bundle\Entity\Users',
));
}
}
и мой регулятора, ,
public function addNewUserAction(Request $request)
{
$user = new Users;
$address = new Address;
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
return $this->render('PIE10Bundle:Form:newuser.html.twig',
array(
'title' => 'Add New User',
'form' => $form->createView()
));
}
да и, наконец, вид PIE10Bundle:Form:newuser.html.twig
{% extends "PIE10Bundle::layout.html.twig" %}
{% block cmi_body %}
<div class="row">
<div class="col-md-2">
</div>
<div class="col-md-6">
{{form_start(form)}}
{{form_widget(form)}}
{{form_end(form)}}
</div>
</div>
<div class="row">
{{ dump(form) }}
</div>
{% endblock %}
И я получаю что-то вроде ниже.
в форме я не получаю текстовых полей для следующих
$builder->add('address');
$builder->add('postCode');
Мне нужно знать, если я что-то отсутствует в моем коде или причину не получить два текстовых поля и как исправить эту проблему.
Заранее спасибо.
Является ли это 1 к 1 отношение между пользователем и адресом? Возможно, вы захотите показать свое сопоставление. Как вы установили свои отношения между этими двумя объектами, определите, какой тип поля формы использовать. –
да это от 1 до 1 отношения – mapmalith