Laravel 4: Éloquent relation d'obtenir toutes les données
J'ai 2 relation des données de la table; table des utilisateurs et de memberdetails table.
Users.php
class Users extends Eloquent{
public function memberdetails()
{
return $this->hasOne('Memberdetails','user_id');
}
}
Memberdetails.php
class Memberdetails extends Eloquent{
public function user()
{
return $this->belongsTo('Users','user_id');
}
}
Lorsque j'essaie de récupérer des données, avec $data = User::find($id);
je seulement obtenir des données à partir de la table des utilisateurs.
Exemple de ma lame forme:
{{ -- User's Name, stored on user table -- }}
{{ Form::text('name',null, array('id'=>'name','class'=>'form-control','required')) }}
{{ -- User's address, stored on member table -- }}
{{ Form::text('address',null, array('id'=>'address','class'=>'form-control','required')) }}
Lorsque je visite, localhost/user/2/edit/
, le nom du champ est rempli, mais un champ d'adresse est vide. Comment puis-je récupérer les données de deux tables et les mettre dans un formulaire d'édition?
Merci.
- Vous n'avez pas besoin que 'user_id' param
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser désireux de chargement.
En utilisant cela, vous obtiendrez automatiquement le memberdetails lors de la récupération de l'utilisateur. Ensuite, vous pouvez utiliser
$user->memberdetails
À l'aide désireux de chargement, vous n'avez qu'une seule requête à la base de données de sorte qu'il doit être le moyen privilégié. Si vous n'avez pas utiliser le
with('memberdetails')
, vous devrez effectuer une deuxième requête lors de l'accès à la memberdetails.Après l'obtention de l'utilisateur exemple, l'accès à la relation, alors vous pouvez accéder à d'autres propriétés de la classe