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

27 juin 2020 - : PHP Tutoriel Symfony - : 0 commentaire - Tutoriel Controllers PHP Utilisateurs Symfony

Visualisez les fichiers de cette série sur GitHub

Dernière modification le 23 octobre 2020

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

Visualisez les fichiers de cette série sur GitHub

Partager

Partager sur Facebook Partager sur Twitter Partager sur LinkedIn

Commentaires

Pas encore de commentaire

Obtenir de l'aide

Il n'est plus possible d'ajouter de commentaires.

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