Laravel Requête De Mise À Jour
Je suis en train de mettre à jour un Utilisateur sur la base de l'e-mail il n'y a pas d'id, est-il un moyen de le faire sans raw requêtes.
Actuellement l'erreur
{"error":{"type":"ErrorException","message":"la Création d'objet par défaut
de vide
valeur","file":"C:\wamp\www\celeb-jim\app\controllers\SignupController.php","ligne":189}}
Mon Code
public function changeAccountStatus ($plan, $userEmail ){ $UpdateDetails = User::where('email', '=', $userEmail)->first(); $UpdateDetails->member_type = $plan; $UpdateDetails->save(); }
Et ce qui est dans la ligne de
189
?OriginalL'auteur Brent | 2014-12-02
Vous devez vous connecter pour publier un commentaire.
Cette erreur serait de suggérer que
User::where('email', '=', $userEmail)->first()
est de retour null, plutôt que d'un problème avec la mise à jour de votre modèle.Vérifier que vous disposez d'un Utilisateur avant de tenter de modifier les propriétés, ou utiliser le
firstOrFail()
méthode.ou à l'aide de la
firstOrFail()
méthode, theres aucun besoin de vérifier si l'utilisateur est nulle car cela déclenche une exception (ModelNotFoundException
) lorsqu'un modèle n'est pas trouvé, vous pouvez prendre l'aide deApp::error()
http://laravel.com/docs/4.2/errors#handling-errorsOriginalL'auteur Wader
Vous pouvez utiliser le Laravel générateur de requêtes, mais ce n'est pas la meilleure façon de le faire.
Vérifier D'échassiers de la réponse ci-dessous pour l'Éloquent - ce qui est meilleur, car il permet de vérifier qu'il est en réalité un utilisateur correspond à l'adresse e-mail, et de gérer l'erreur si il n'y en a pas.
Si vous avez plusieurs champs à mettre à jour, vous pouvez simplement ajouter plus de valeur à ce tableau à la fin.
J'ai édité mon commentaire
Pourquoi voudriez-vous utiliser le Générateur de Requêtes pour ce faire lors de l'op a un Éloquent modèle de configuration? Le problème n'est pas que cela ne peut être fait facilement en Éloquent, mais le fait n'est pas null vérifier avant de tenter de définir les propriétés de l'objet (Voir ma réponse)
oui, vous avez raison. Je voudrais supprimer cette option si elle n'était pas acceptée. +1 sur le vôtre est de moi. Je vais mettre à jour ce pour le rendre plus clair
Je n'étais pas en disant que c'était faux, il suffit de remettre en cause les bienfaits à l'aide du Générateur de Requêtes de plus Éloquent. Je me rends compte de mon commentaire qui sonne très dures, toutes mes excuses
OriginalL'auteur msturdy
Essayer de faire comme ça.
OriginalL'auteur Cengkuru Michael
OriginalL'auteur nandu