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'', ''[email protected]'')->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'');