verificar validar saber registros registro firstorcreate existe datos consultas buscar php laravel laravel-5 eloquent conditional

php - saber - validar si un registro existe en la base de datos laravel



Comprobación de Laravel si existe un registro (22)

Soy nuevo en Laravel. Disculpe la pregunta de novato, pero ¿cómo puedo encontrar si existe un registro?

$user = User::where(''email'', ''='', Input::get(''email''));

¿Qué puedo hacer aquí para ver si $user tiene un registro?



Creado debajo del método (para mí) para verificar si la identificación de registro dada existe en la tabla Db o no.

private function isModelRecordExist($model, $recordId) { if (!$recordId) return false; $count = $model->where([''id'' => $recordId])->count(); return $count ? true : false; } // To Test $recordId = 5; $status = $this->isModelRecordExist( (new MyTestModel()), $recordId);

Inicio ¡Ayuda!


Creo que a continuación es la forma más sencilla de lograr lo mismo:

$user = User::where(''email'', ''='', $request->input(''email''))->first(); if ($user) { // user doesn''t exist! }


Depende si luego desea trabajar con el usuario o solo verificar si existe.

Si desea utilizar el objeto de usuario si existe:

$user = User::where(''email'', ''='', Input::get(''email''))->first(); if ($user === null) { // user doesn''t exist }

Y si solo quieres comprobar

if (User::where(''email'', ''='', Input::get(''email''))->count() > 0) { // user found }

O incluso mejor

if (User::where(''email'', ''='', Input::get(''email''))->exists()) { // user found }


En laravel elocuente, tiene el método predeterminado existe (), consulte el siguiente ejemplo.

if(User::where(''id'', $user_id )->exists()){ // your code... }


Es fácil saber si hay registros o no

$user = User::where(''email'', ''='', Input::get(''email''))->get(); if(count($user) > 0) { echo "There is data"; } else echo "No data";


Esto verificará si el correo electrónico solicitado existe en la tabla de usuario:

if (User::where(''email'', $request->email)->exists()) { //email exists in user table }


Esto verificará si existe una dirección de correo electrónico particular en la tabla:

if (isset(User::where(''email'', Input::get(''email''))->value(''email''))) { // Input::get(''email'') exist in the table }


La comprobación de null dentro de la instrucción if evita que Laravel regrese 404 inmediatamente después de que finalice la consulta.

if ( User::find( $userId ) === null ) { return "user does not exist"; } else { $user = User::find( $userId ); return $user; }

Parece que ejecuta una doble consulta si se encuentra al usuario, pero parece que no puedo encontrar ninguna otra solución confiable.


Laravel 5.6.26v

para encontrar el registro existente a través de la clave principal (correo electrónico o id)

if(!$user){ //user is not found } if($user){ // user found }

entonces

if (User::where(''email'', ''user@email.com'')->first()) // It exists else // It does not exist

incluya "use DB" y el usuario de nombre de tabla se convierte en plural usando la consulta anterior como usuario a usuario


Opciones de trabajo más cortas:

// 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();


Una de las mejores soluciones es usar el método firstOrNew o firstOrCreate . La documentation tiene más detalles sobre ambos.


puedes usar la validación laravel.

Pero este código también es bueno:

$user = User::where(''email'', $request->input(''email''))->count(); if($user > 0) { echo "There is data"; } else echo "No data";


En su controlador

$this->validate($request, [ ''email'' => ''required|unique:user|email'', ]);

En su vista - Mostrar mensaje ya existente

@if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif


este es un código simple para verificar si el correo electrónico existe o no en la base de datos

$data = $request->all(); $user = DB::table(''User'')->pluck(''email'')->toArray(); if(in_array($user,$data[''email''])) { echo ''existed email''; }


if ($u = User::where(''email'', ''='', $value)->first()) { // do something with $u return ''exists''; } else { return ''nope''; }

funcionaría con try / catch

-> get () aún devolvería una matriz vacía


if (User::where(''email'', Input::get(''email''))->exists()) { // exists }



$user = DB::table(''users'')->where(''email'',$email)->first();

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.


$email = User::find($request->email); If($email->count()>0) <h1>Email exist, please make new email address</h1> endif


$user = User::where(''email'', ''='', Input::get(''email''))->first(); if ($user === null) { // user doesn''t exist }

Se puede escribir como

if (User::where(''email'', ''='', Input::get(''email''))->first() === null) { // user doesn''t exist }

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.


$user = User::where(''email'', request(''email'')->first(); return (count($user) > 0 ? ''Email Exist'' : ''Email Not Exist'');