Comment faire pour retourner plusieurs relations avec Laravel Éloquent?
J'ai une table appelée users
. Chacun de ces utilisateurs ont des choses différentes:
- pays
- appareil
- ordinateur
- catégorie
J'ai créé un tableau pour chacune de ces "choses". Similaire à la suivante:
1 | United States
2 | United Kingdom
3 | Australia
4 | Canada
5 | Italy
etc...
Je suis stocker ces valeurs dans la table des utilisateurs comme suit:
ID | Country | Device | Computer | Category |
--- | --------- | -------- | ---------- | ----------|
1 | 3 | 2 | 6 | 2 |
2 | 4 | 3 | 9 | 1 |
etc...
Maintenant chacun des nombres ci-dessus sont associées avec le tableau correspondant de l'ID.
Ce que je veux, c'est faire un Éloquent Requête et de recherche pour tous les users
et 'remplacer' leurs valeurs correspondantes de leur table d'assistance.
Je pensais à faire un hasOne()
Éloquent relation pour chacune de ces choses dans la users
table, mais alors je ne suis pas sûr de savoir comment obtenir/appel à eux à la fois.
Quelqu'un peut m'aider tacke ce problème?
- J'ai du mal à croire que vous êtes à l'aide de laravel les versions 4, 5 et 5,2 en même temps
- S'il vous plaît corriger vos balises à la version appropriée de Laravel vous utilisez.
- Désolé pour la confusion, c'est fait.
- Est un utilisateur ne va jamais avoir un seul appareil, un ordinateur, et une catégorie ou peuvent-ils avoir plusieurs à n'importe quel point?
- Maintenant ils ne peuvent obtenir 1 de ceux-ci. J'ai réussi l'installation de la de nombreuses de nombreuses relations déjà avec les tableaux croisés dynamiques, mais je ne peux pas obtenir ma tête autour de celui-ci.
Vous devez vous connecter pour publier un commentaire.
Donc dans votre cas, il peut être quelque chose comme ça. Si vous souhaitez uniquement une relations retourné avec la
user
, éliminer les autres.Lorsque vous
dd($user)
, vous devriez voir les modèles dans larelations
tableau attribut.Pour accéder à la les relations "propriétés" à partir de là, il est tout simplement
$user->device->deviceAttribute
Modifier Pour Commentaire:
Éloquent assumera la clé étrangère utilise le nom du Modèle. Donc, si votre
user
table a laid
colonne, il assume, il y aura une colonne surdevice
table appeléeuser_id
. Si vous avez fait cela, alors vous êtes ensemble et rien ne doit être accompli.Si vous avez nommé votre colonne de relier les modèles de quelque chose d'autre, vous aurez besoin de passer que par un deuxième argument dans le rapport de la méthode.
Inversement, si vous voulez obtenir de l'utilisateur de l'appareil appartient à la, Éloquent va tenter de faire correspondre les
user_id
colonne dans le tableau des périphériques à laid
colonne dans la table user. Comme avant, si vous avez utilisé une autre colonne à lui, déclarer la clé étrangère comme deuxième argument.Laravel Doc One-To-One Relation
hasMany
? Sur l'appareil, ordinateur, etc?Vous êtes à la recherche pour cette:
$books = App\Book::with('author', 'publisher')->get();
Consultez la documentation pour le chargement impatient de multiples relations.