Cela pourrait être une question simple, mais je ne peux pas comprendre cela. J'essaie d'obtenir un utilisateur par courrier électronique en utilisant:
$user = User::whereEmail($email)->get();
Mais ceci renvoie un tableau (de dimension 1) de $ utilisateurs. Donc, si je veux obtenir le nom, je dois faire $user[0]['first_name']
.
J'ai essayé d'utiliser limit(1)
ou take(1)
, ou même d'utiliser ->toArray()
, mais il n'y avait pas de différence.
Qu'est-ce que je fais mal?
tilisez simplement ceci:
$user = User::whereEmail($email)->first();
Vous pouvez le faire aussi
Avant de l’utiliser, vous devez déclarer la façade de la base de données dans le contrôleur.
use Illuminate\Support\Facades\DB;
Maintenant, vous pouvez obtenir une ligne en utilisant cette
$getUserByEmail = DB::table('users')->where('email', $email)->first();
ou par là aussi
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);
Celui-ci retourne un tableau avec un seul élément et le premier renvoie un objet. Garde cela à l'esprit.
J'espère que cela t'aides.
En utilisant Laravel Eloquent, vous pouvez obtenir une ligne en utilisant la méthode first()
,
elle retourne la première ligne de la table si la condition where()
n'est pas trouvée, sinon elle donne la première ligne correspondante du critère donné.
Syntaxe:
Model::where('fieldname',$value)->first();
Exemple:
$user = User::where('email',$email)->first();
//OR
//$user = User::whereEmail($email)->first();