Я создал форму регистрации в symfony для пользователей, эти пользователи связаны с другим полем другой таблицы (города), и я хочу, чтобы при входе пользователь мог выбрать свой собственный город, но я не могу получить форму регистрации, чтобы добавитьмне города, которые пользователь выбирает из выпадающего списка.Это действительно ужасно.
Это код регистрационной формы:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email')
->add('Password', PasswordType::class, [
// instead of being set onto the object directly,
// this is read and encoded in the controller
'mapped' => false,
'constraints' => [
new NotBlank([
'message' => 'Please enter a password',
]),
new Length([
'min' => 6,
'minMessage' => 'Your password should be at least {{ limit }} characters',
// max length allowed by Symfony for security reasons
'max' => 4096,
]),
],
])
->add('nombre')
->add('apellidos')
//Falta por añadir el mensaje y la ciudad
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => User::class,
]);
}
А это код контроллера регистрации
/**
* @Route("/register", name="app_register")
*/
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder): Response
{
$user = new User();
$form = $this->createForm(RegistrationFormType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// encode the plain password
$user->setPassword(
$passwordEncoder->encodePassword(
$user,
$form->get('Password')->getData()
)
);
//El usuario empezara con 0 minutos de saldo cuando se registre
$user->setTiempo(0);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
// do anything else you need here, like send an email
return $this->redirectToRoute('index');
}
return $this->render('registration/register.html.twig', [
'registrationForm' => $form->createView(),
]);
}