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


popotte
Réponse acceptée

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() }}

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
Auteur

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