Bueno, para comenzar, debe ejecutar findOrFail () o similar en la consulta $ user
Mark Baker, el
9
eso realmente no ayuda
Ben
1
Entonces que hace? ¿Por qué no ayuda? $user = User::where('email', '=', Input::get('email'));simplemente crea una consulta en $user, debe ejecutar esa consulta. findOrFail()es una forma de ejecutar esa consulta. get()sería otra forma, firstOrFail()otra
Mark Baker
2
Si una sugerencia "realmente no ayuda" intente decir por qué realmente no ayuda, porque de esa manera significa que sabemos cómo mejorar / cambiar esa sugerencia
aunque no se ajusta a la pregunta, aún así, funciones muy útiles. la diferencia entre los dos es que firstOrNew instancia una instancia del modelo llamado mientras firstOrCreate salva el modelo preguntó al instante lo que necesita para actualizar los cambios en el modelo firstOrCreate'd.
Gokigooooks
Sí, u otra forma de pensarlo es, use firstOrCreate si puede pasar todos los atributos de una vez (use el segundo parámetro), pero firstOrNew si va a necesitar más lógica antes de guardar.
Sí, pero no está devolviendo una colección. Está devolviendo un solo objeto modelo, ya que asumiría que cada usuario tiene un único, emailpor ->isEmpty()lo que arrojará un error.
user3574492
Y qué pasa si me sale el siguiente error:Call to a member function isEmpty() on null
Pathros
6
if(User::where('email','[email protected]')->first())// It existselse// It does not exist
Use first(), no count()si solo necesita verificar la existencia.
first()es más rápido porque busca una sola coincidencia, mientras que count()cuenta todas las coincidencias.
Laravel 6 o en la parte superior: escriba el nombre de la tabla, luego indique la condición de la cláusula where, por ejemplo where ('id', $ request-> id)
publicfunction store(Request $request){
$target = DB:: table('categories')->where('title', $request->name)->get()->first();if($target ===null){// do what ever you need to do
$cat =newCategory();
$cat->title = $request->input('name');
$cat->parent_id = $request->input('parent_id');
$cat->user_id=auth()->user()->id;
$cat->save();return redirect(route('cats.app'))->with('success','App created successfully.');}else{// match found return redirect(route('cats.app'))->with('error','App already exists.');}}
// if you need to do something with the user if($user =User::whereEmail(Input::get('email'))->first()){// ...}// otherwise
$userExists =User::whereEmail(Input::get('email'))->exists();
$user = User::where('email', '=', Input::get('email'));
simplemente crea una consulta en$user
, debe ejecutar esa consulta.findOrFail()
es una forma de ejecutar esa consulta.get()
sería otra forma,firstOrFail()
otraRespuestas:
Depende si desea trabajar con el usuario después o solo verificar si existe.
Si desea utilizar el objeto de usuario si existe:
Y si solo quieres comprobar
O incluso mejor
fuente
exists()
a un registro inexistente, entonces da error:Call to a member function exists() on null
first()
Una de las mejores soluciones es usar el
firstOrNew
firstOrCreate
método o . La documentación tiene más detalles sobre ambos.fuente
fuente
exists()
método.Eloquent utiliza colecciones. Vea el siguiente enlace: https://laravel.com/docs/5.4/eloquent-collections
fuente
email
por->isEmpty()
lo que arrojará un error.Call to a member function isEmpty() on null
Use
first()
, nocount()
si solo necesita verificar la existencia.first()
es más rápido porque busca una sola coincidencia, mientras quecount()
cuenta todas las coincidencias.fuente
En laravel elocuente, tiene el método predeterminado existe (), consulte el siguiente ejemplo.
if(User::where('id', $user_id )->exists()){ // your code... }
fuente
Laravel 5.6.26v
para encontrar el registro existente a través de la clave principal (correo electrónico o id)
luego
incluye "use DB" y el nombre de la tabla del usuario se convierte en plural usando la consulta anterior como usuario a usuario
fuente
Esto verificará si el correo electrónico solicitado existe en la tabla de usuario:
fuente
En su controlador
En su vista - Mostrar mensaje ya existente
fuente
required|unique:users,email|email
funcionaría con try / catch
-> get () aún devolvería una matriz vacía
fuente
fuente
Es fácil saber si hay registros o no
fuente
fuente
puedes usar la validación laravel.
Pero este código también es bueno:
fuente
Esto verificará si existe una dirección de correo electrónico particular en la tabla:
fuente
La comprobación de
null
dentro de laif
declaración evita que Laravel regrese 404 inmediatamente después de que finalice la consulta.Parece que ejecuta una doble consulta si se encuentra al usuario, pero parece que no puedo encontrar ninguna otra solución confiable.
fuente
find
conwhere
.User::where(id, 1)->first()
Se puede escribir como
Esto devolverá verdadero o falso sin asignar una variable temporal si eso es todo para lo que está utilizando $ user en la declaración original.
fuente
Creo que a continuación es la forma más sencilla de lograr lo mismo:
fuente
Creado debajo del método (para mí) para verificar si el ID de registro dado existe en la tabla Db o no.
Inicio ¡Ayuda!
fuente
La forma más fácil de hacer
fuente
Laravel 6 o en la parte superior: escriba el nombre de la tabla, luego indique la condición de la cláusula where, por ejemplo where ('id', $ request-> id)
fuente
La manera eficiente de verificar si el registro existe debe usar el método is_null para verificar la consulta.
El siguiente código puede ser útil:
fuente
Opciones de trabajo más cortas:
fuente
Aquí hay un enlace a algo que creo que puede ayudar https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
fuente
este es un código simple para verificar si el correo electrónico existe o no en la base de datos
fuente