FosUserbundle et modèle symfony 2 et modifications
-
27-10-2019 - |
Question
Je suis nouveau à symfony 2. J'ai installé juste avec FOSuserbundle de base. Mais j'ai quelques problèmes:
-
J'ai installé le nouveau modèle de mise en page mais je ne pouvais pas trouver où changer le modèle de formulaire pour la connexion, l'enregistrement, le profil
-
je ne pouvais pas trouver comment modifier le profil de l'utilisateur. Je peux voir le profil à l'aide / profil mais je ne pouvais trouver aucun lien modifier il
La solution
Les réponses sur vos questions que vous pouvez trouver à l'intérieur documentation . Voici quelques points:
- Reproduisez les modèles que vous souhaitez modifier de
FOSUserBundle/Resources/views
dans votre paquet et faire les changements que vous voulez. - Si vous avez besoin de faire un formulaire de profil personnalisé (comme je suppose en fonction de votre question), vous devez créer un type de formulaire de profil et préciser que FOSUserBundle utilise.
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')
;
}
}
Autres conseils
@Anton a la bonne réponse pour la première partie de votre question, mais de répondre à la deuxième partie, si vous pouvez voir votre profil de /profile
vous pouvez modifier en allant /profile/edit
dans votre navigateur.
Il n'y a pas de lien d'édition sur le formulaire de profil par défaut. Si vous voulez un, vous aurez besoin de prendre les conseils de @Anton et de copier le modèle de formulaire par défaut (s) et les coller dans un répertoire avec le même nom dans votre paquet.
Comme @Anton déjà souligné, tous les détails sur la façon de le faire sont soit dans le documentation maître ou documentation pour la version 1.2.0 (dont vous aurez besoin si vous utilisez Symfony 2.0. *