Modello e modifiche di FosUserbundle e symfony 2
-
27-10-2019 - |
Domanda
Sono nuovo di symfony 2. Ho appena configurato con FOSuserbundle di base.Ma ho alcuni problemi:
-
Ho impostato il nuovo modello di layout ma non sono riuscito a trovare dove cambiare il modello di modulo per login, registrazione, profilo
-
Non sono riuscito a trovare come modificare il profilo utente.Posso visualizzare il profilo usando / profile ma non sono riuscito a trovare alcun link di modifica lì
Soluzione
Le risposte alle tue domande puoi trovare nella documentazione .Ecco alcuni punti:
- Copia i modelli che desideri modificare da
FOSUserBundle/Resources/views
nel tuo pacchetto e apporta le modifiche desiderate. - Se devi creare un modulo di profilo personalizzato (come immagino in base alla tua domanda), devi creare il tipo di modulo del profilo e specificare che FOSUserBundle lo utilizza.
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')
;
}
}
Altri suggerimenti
@Anton ha la risposta corretta per la prima parte della tua domanda ma per rispondere alla seconda parte, se puoi visualizzare il tuo profilo da /profile
puoi modificarlo andando su /profile/edit
nel tuo browser.
Non è presente alcun collegamento di modifica nel modulo del profilo predefinito.Se ne vuoi uno, devi seguire il consiglio di @Anton e copiare i modelli di modulo predefiniti e incollarli in una directory con lo stesso nome nel tuo bundle.
Come ha già sottolineato @Anton, tutti i dettagli su come farlo si trovano in documentazione principale o documentazione per la versione 1.2.0 (di cui avrai bisogno se stai usando Symfony 2.0. *