Bonjour,

Il y a quelques choses que je n'arrive pas a comprendre dans les relations.

Actuellement j'ai un système d'upload d'images et je stock l'id de l'image et quelques infos dans ma base de donnée.

Après j'me suis dit que j'allais rajouter un champs dans ma table users "photo_id" et que j'allais inséré l'id de la photo lorsque l'utilisateur cliquerais sur "définir en tant que photo par défaut" mais je comprend pas comment faire ça ? Fin j'ai du mal a comprendre quel type de relation je dois faire. Merci.

2 réponses


Bonjour,

Il faut essayer de réfléchir en mode "pas informatique" de ce côté là.
Tu as donc un utilisateur. Tu as une liste de photo.
Un utilisateur à une photo.

Dans ton cas, tu pourrais tendre vers une relation "hasOne" mais ce ne serait pas bon. Pourquoi ? Car une photo peut très bien être utilisé plusieurs fois. Le hasOne te forcerais à rajouter une colonne user_id sur table photos.

Il faut donc utiliser l'inverse, un belongsTo sur la colonne photo_id.

Bonjour.
@Azorth: Je crois que tu n'as pas bien compris, car si j'ai bien compris ce qu'il veut dire, un utilisateur peut avoir plusieurs photos et il pense mettre un champ photo_id dans sa table users pour que l'utilisateur puisse définir une photo par défaut en y stockant l'id de la photo sélectionnée.
Donc pour faire simple, il a dans la table correspondant aux photos celles des utilisateurs et en créant un champ photo_id dans la table users il permettrait à l'utilisateur de choisir une photo par défaut, qui serait en quelque sorte son avatar/photo de profil.
Il faudrait donc un photos belongsTo users pour les photos correspondant à toutes les photos de l'utilisateur puis un users hasOne photos pour l'avatar/photo de profil et un users hasMany photos.