2013-08-16 3 views
0

J'ai une fonction dans mon modèle User (j'utilise le modèle User par défaut de Laravel) qui est une relation avec le modèle Player.Laravel 4 récupération

Je veux récupérer l'identifiant du lecteur, mais je ne peux pas. Y a-t-il un moyen de le faire? J'ai essayé quelque chose comme:

Auth::user()->players->id; 

ou

Auth::user()->id->players; 

mais il ne fonctionne pas. Des indices?

Répondre

1

Cela dépend du type de votre relation. A partir du code que vous avez fourni, je peux deviner que la relation est appelée 'players' et non 'player' (ce qui signifie que vous devriez avoir une fonction players() dans votre modèle User). Si c'est le cas, votre code

Auth::user()->players 

renvoie une collection de lecteurs. Vous pouvez faire une boucle à travers cette collection et obtenir les identifiants des joueurs:

foreach (Auth::user()->players as $player) 
{ 
    $playerId = $player->id; 
    // Do more stuff for a single player here 
} 

Espérons que cela clarifie les choses un peu. Si ce n'est pas le cas, veuillez fournir plus de détails sur votre relation entre les modèles Utilisateur et Lecteur. Vous trouverez également plus de détails ici: http://laravel.com/docs/eloquent#relationships

+0

da nisi hrvat? J'ai fait tout cela, je suis en train de créer une sorte de guilde (http://paste.laravel.com/JWI), comment pourrais-je entrer l'ID là-bas? Ai-je besoin d'une foreach là? –

+0

Crnogorac :) Etes-vous sûr que la logique de votre relation entre l'utilisateur et le lecteur est correcte? Pourquoi un utilisateur a-t-il plus de joueurs? Un utilisateur est-il réellement un joueur lui-même? Si oui, que vous n'avez pas besoin de User ou que vous n'avez pas besoin du modèle Player, vous pouvez en utiliser un, puis: $ guild-> ownerid = Auth :: user() -> id; –

+0

Un utilisateur peut avoir plus de joueurs, mais un utilisateur n'est pas lui-même un joueur. Si c'était comme ça, ce serait facile lol. C'est ce que le problème est. –