5- Créer une page profil pour l'utilisateur avec Symfony 5.1

Dans de nombreux sites, nous aurons besoin d'une page profil pour les utilisateurs.



Dans cette page, les utilisateurs auront accès aux contenus qu'ils auront créés sur le site.



Nous allons commencer par ajouter quelques informations dans l'entité Users afin d'avoir des informations personnalisées.



Au moyen de la commande




symfony console make:entity


Nous allons ajouter le nom (name) et le prénom (firstname) de l'utilisateur.



Seront ensuite exécutées les commandes




symfony console make:migration
symfony console doctrine:migrations:migrate


Sécurité



Nous allons ajouter une sécurité à l'accès à la route "/users" qui est dans "UsersController", nécessitant que l'utilisateur soit connecté pour y accéder.



Nous allons donc dans le fichier security.yaml (dans config/packages) modifier la partie "access_control" comme ci-dessous




# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/users, roles: ROLE_USER }


A compter de cet instant, l'accès à la route /users est protégé.



Mise en place du contrôleur



Pour accéder aux informations de l'utilisateur connecté, nous n'avons pas besoin de traitement dans le contrôleur. Il nous suffit de créer une méthode comme ceci.




/**
* @Route("/users", name="users")
*/
public function index()
{
return $this->render('users/index.html.twig');
}


Mise en place de la vue



Nous allons accéder aux différentes informations de l'utilisateur directement dans le fichier twig.



Affichage des informations de l'utilisateur



Nous pourrons accéder aux informations de l'utilisateur en utilisant "app.user" suivi du nom du champ que nous souhaitons afficher.




<p>Nom : {{ app.user.name }}</p>
<p>Prénom : {{ app.user.firstname }}</p>
<p>E-mail : {{ app.user.email }}</p>


Affichage des annonces de l'utilisateur



Nous pourrons accéder aux annonces de l'utilisateur grâce à la propriété "annonces" de l'entité "Users" qui correspond à la relation entre nos entités.



Pour accéder à cette propriété depuis Twig, nous utiliserons "app.user.annonces" et ferons une boucle.




{% for annonce in app.user.annonces %}
<p>Titre : {{ annonce.title }}</p>
{% endfor %}


Il conviendra bien sûr d'apporter des mises en forme en CSS pour rendre le tout présentable.



Des détails complémentaires sont présents dans la vidéo.



Obtenir de l'aide



Pour obtenir de l'aide, vous pouvez accéder au serveur Discord pour une entraide par chat

5- Créer une page profil pour l'utilisateur avec Symfony 5.1
Article publié le - Modifié le

Catégories : PHP Tutoriel Symfony symfony5

Mots-clés : Tutoriel Controllers PHP Utilisateurs Symfony symfony5 user profil profile

Partager : Partager sur Facebook Partager sur Twitter Partager sur LinkedIn