How to add a default image for user in laravel

Par MrRooot, il y a 2 ans


Décrivez ici votre problème ou ce que vous cherchez à faire.

$table->string('image_profile')->default('userprofile.png');

Ce que je veux

Je veux ajouter une image par default dans mon model user

Ce que j'obtiens

3 réponses

XDCondor, il y a 2 ans

Bonjour @MrRoot, cette méthode marche bien mais à la seule condition que mette ton fichier userprofile.png dans le dossier public de ton projet.

MrRooot, il y a 2 ans

D'accord @XDCondor, merci pour t'a réponse. Je voudrais la meilleur approche, methode pour ajouter une image par default dans un projet laravel

popotte, il y a 2 ans

Hello :)

Alors le mieux ce serait de mettre les images dans une nouvelle table

Table profile_images (string) url (string) alt (id) user_id

Ensuite dans les models tu fais ta relation belongsTo/hasOne

// User.php profileImage(): HasOne { return $this->hasOne(ProfileImage::class); }

Et dans ton model User tu peux faire une fonction getImage

// User.php getImage() // C'est lui qui gère si il y a une image de profil ou si faut renvoyer une image par défaut { return $this->profileImage ?? ProfileImage::first(); // On va dire que la première image c'est celle par défaut }

Et dans tes vues Blade tu peux récupérer l'image de profil si y en a une sinon par défaut, tu t'en fiche c'est le model si gère ça

// *.blade.php {{ $user->getImage() }}