Plantilla y ediciones de FosUserbundle y Symfony 2
-
27-10-2019 - |
Pregunta
Soy nuevo en Symfony 2. Acabo de configurarlo con FOSuserbundle básico.Pero tengo algunos problemas:
-
He configurado la nueva plantilla de diseño, pero no pude encontrar dónde cambiar la plantilla de formulario para inicio de sesión, registro, perfil
-
No pude encontrar cómo editar el perfil de usuario.Puedo ver el perfil usando / profile pero no pude encontrar ningún enlace de edición allí
Solución
Las respuestas a sus preguntas se encuentran en la documentación .Estos son algunos puntos:
- Copie las plantillas que desee modificar de
FOSUserBundle/Resources/views
en su paquete y realice los cambios que desee. - Si necesita crear un formulario de perfil personalizado (como supongo en base a su pregunta), entonces debe crear un tipo de formulario de perfil y especificar que FOSUserBundle lo usa.
config.yml
services:
my_user.profile.form.type:
class: My\UserBundle\Form\Type\ProfileFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: my_user_profile }
fos_user:
profile:
form:
type: my_user_profile
ProfileFormType.php
<?php
namespace My\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\ProfileFormType as BaseType;
class ProfileFormType extends BaseType
{
public function getName()
{
return 'my_user_profile';
}
protected function buildUserForm(FormBuilder $builder, array $options)
{
$builder
->add('email', 'email')
->add('firstName')
->add('lastName')
;
}
}
Otros consejos
@Anton tiene la respuesta correcta para la primera parte de su pregunta, pero para responder la segunda parte, si puede ver su perfil desde /profile
, puede editarlo yendo a /profile/edit
en su navegador.
No hay un enlace de edición en el formulario de perfil predeterminado.Si desea uno, deberá seguir el consejo de @Anton y copiar las plantillas de formulario predeterminadas y pegarlas en un directorio con el mismo nombre en su paquete.
Como ya señaló @Anton, todos los detalles sobre cómo hacer esto están en el documentación maestra o la documentación para la versión 1.2.0 (que necesitará si está utilizando Symfony 2.0. *