Esta puede ser una pregunta simple, pero no puedo resolverla. Estoy tratando de obtener un usuario por correo electrónico usando:
$user = User::whereEmail($email)->get();
Pero esto devuelve una matriz (de dimensión 1) de $ users. Entonces, si quiero obtener el nombre, tengo que hacerlo $user[0]['first_name']
.
Intenté usar limit(1)
o take(1)
, o incluso usar, ->toArray()
pero no hubo diferencia.
¿Qué estoy haciendo mal?
Respuestas:
Simplemente usa esto:
fuente
Tu tambien puedes hacer esto
Antes de usar esto, debe declarar la fachada de la base de datos en el controlador Simplemente coloque esta línea para eso
use Illuminate\Support\Facades\DB;
Ahora puedes obtener una fila usando esto
$getUserByEmail = DB::table('users')->where('email', $email)->first();
o por esto también
$getUserByEmail = DB::select('SELECT * FROM users WHERE email = ?' , ['[email protected]']);
Este devuelve una matriz con solo un elemento y mientras que el primero devuelve un objeto. Ten eso en mente.
Espero que esto ayude.
fuente
Usando Laravel Eloquent puedes obtener una fila usando el
first()
método,devuelve la primera fila de la tabla si
where()
no se encuentra la condición; de lo contrario, da la primera fila coincidente de los criterios dados.Sintaxis:
Model::where('fieldname',$value)->first();
Ejemplo:
$user = User::where('email',$email)->first(); //OR //$user = User::whereEmail($email)->first();
fuente
laravel 5.8
Si ni siquiera necesita una fila completa, puede extraer un solo valor de un registro usando el
value()
método. Este método devolverá el valor de la columna directamente:$first_name = DB::table('users')->where('email' ,'me@mail,com')->value('first_name');
consultar documentos
fuente
Pruébalo
$color = \App\Color::take(1)->first();
fuente
Laravel 5.2
$sql = "SELECT * FROM users WHERE email = $email"; $user = collect(\User::select($sql))->first();
o
$user = User::table('users')->where('email', $email)->pluck();
fuente
$user = User::whereEmail($email)->first();
como se propone en la respuesta aceptada.También puedes usar esto
fuente