La création de Éloquent de l'Objet par rapport inclus
Je suis assez nouveau à l'opps et laravel à la fois
Ainsi, pour insérer les valeurs dans mon users
et profiles
tableau qui vha OneToOne
relation, Voici comment mon store()
méthode ressemble à
public function store(Requests\StoreNewUser $request)
{
//crate an objct of user model
$user = new \App\User;
//now request and assign validated input to array of column names in user table
$user->first_name = $request->input('first_name');
$user->last_name = $request->input('last_name');
$user->email = $request->input('email');
$user->password = $request->input('password');
/* want to assign request input to profile table's columns in one go
*/
$user->profile()->user_id = $user->id; //foreign key in profiles table
$user->profile()->mobile_no = $request->input('mobile');
dd($user); //nothing related to profile is returned
}
Je suis de la création du nouveau dossier, donc dd()
ne revient jamais tout ce qui est lié à la table de profil.
Est-ce Parce que la $user
objet n'est pas y compris la relation par défaut?
Si oui puis-je créer l' $user
objet qui comprend les associés relations dans User
Modèle ?
Ou dois-je créer deux objets séparés de chaque table et save()
les données
Mais alors quelle est la signification de push()
méthode ?
EDIT 1
P. S. oui, les relations sont déjà définies dans User
& Profile
modèle
OriginalL'auteur echoashu | 2015-06-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme ce qui suit. Au premier abord enregistrer le modèle parent comme ceci:
Puis de créer et d'enregistrer le modèle en utilisant quelque chose comme ceci:
Assurez-vous également que vous avez créé le
profile
méthode dansUser
modèle:User
etProfile
respectivement, mais qu'est-ce exactement$user->profile()->save($profile);
signifie? comment différente de$profile->save()
Il attache aussi de l'
profile
avec leUser
modèle, de sorte que vous n'avez pas à fournir leuser.id(foreign key)
lors de la création de laProfile
manuellement.fait. et ce abt de l'enregistrement de données en une seule fois, c'est à dire si plusieurs utilisateurs sont créés par de multiples demandes individuelles en même temps sur le serveur, ils seront exécutés dans le jeu? et de ne pas se mêler? U peut envisager, j'ai créer un formulaire d'utilisateur et de certains membres de mon personnel les opérateurs sont en soumettant ce, simultanément.
Oui, ils vont être sauvés sans heurt.
Oui, c'est bien de l'OMI.
OriginalL'auteur The Alpha
Je pensais que je mettrais à jour cette réponse et de le rendre applicable à Laravel 5 partir. Je vais utiliser @Alpha réponse comme une base.
La raison pour cela est que vous ne pouvez plus appeler
save
sur lebelongsTo
relation (ou tout autre), cela renvoie une instance deIlluminate\Database\Query\Builder
.OriginalL'auteur Matt
Le propre façon de le faire maintenant serait d'avoir sur votre fichier de la Classe User:
et dans votre Contrôleur Utilisateur, le magasin suivant la méthode:
Je ne sais si u ont été l'enregistrement de texte en clair le mot de passe de votre base de données ou à l'aide d'un mutateur sur l'attribut de mot de passe, de toute façon les suggestions ci-dessus est une bonne pratique, je pense que
OriginalL'auteur diegochaves
Est-ce Parce que le $user de l'objet n'est pas y compris la relation par défaut? Si oui puis-je créer l' $objet utilisateur qui comprend les associés des relations dans le Modèle d'Utilisateur ?
Oui, vous devez créer la relation, ils ne sont pas inclus par par défaut.
Dans votre
User
modèle que vous aimeriez faire quelque chose comme ceci:Ce serait également vous obliger à avoir un
Profile
modèle créé.Ce serait sans aucun doute répondre à vos questions concernant l'insertion de modèles connexes: http://laravel.com/docs/5.1/eloquent-relationships#inserting-related-models
Comme L'Alpha mentionné, et vous aussi échappé, je pense que vous avez besoin pour économiser de l'utilisateur de votre modèle d'abord, puis vous pouvez ajouter des relations.
hasOne
etbelongsTo
sont définis dansUser
etProfile
modèle respectivementOriginalL'auteur haakym