C'est peut-être une question simple, mais je ne peux pas comprendre cela. J'essaie d'obtenir un utilisateur par e-mail en utilisant:
$user = User::whereEmail($email)->get();
Mais cela renvoie un tableau (de dimension 1) de $ users. Donc, si je veux obtenir le nom, je dois le 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 aucune différence.
Qu'est-ce que je fais mal?
Réponses:
Utilisez simplement ceci:
la source
Vous pouvez le faire aussi
Avant de l'utiliser, vous devez déclarer la façade DB dans le contrôleur. Mettez simplement cette ligne pour cela
use Illuminate\Support\Facades\DB;
Vous pouvez maintenant obtenir une ligne en utilisant ceci
$getUserByEmail = DB::table('users')->where('email', $email)->first();
ou par ça aussi
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);
Celui-ci retourne un tableau avec un seul élément et tandis que le premier retourne un objet. Garde cela à l'esprit.
J'espère que cela t'aides.
la source
En utilisant Laravel Eloquent, vous pouvez obtenir une ligne en utilisant la
first()
méthode,il renvoie la première ligne du tableau si la
where()
condition n'est pas trouvée, sinon il donne la première ligne correspondante de critères donnés.Syntaxe:
Model::where('fieldname',$value)->first();
Exemple:
$user = User::where('email',$email)->first(); //OR //$user = User::whereEmail($email)->first();
la source
laravel 5.8
Si vous n'avez même pas besoin d'une ligne entière, vous pouvez extraire une seule valeur d'un enregistrement à l'aide de la
value()
méthode. Cette méthode retournera directement la valeur de la colonne:$first_name = DB::table('users')->where('email' ,'me@mail,com')->value('first_name');
vérifier les documents
la source
Essayez avec
$color = \App\Color::take(1)->first();
la source
Laravel 5.2
$sql = "SELECT * FROM users WHERE email = $email"; $user = collect(\User::select($sql))->first();
ou
$user = User::table('users')->where('email', $email)->pluck();
la source
$user = User::whereEmail($email)->first();
comme proposé dans la réponse acceptée.Vous pouvez également utiliser ceci
la source