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?
Aquí hay un enlace a algo que creo que puede ayudar https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
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
}
if($user->isEmpty()){
// has no records
}
Eloquent utiliza colecciones. Vea el siguiente enlace: https://laravel.com/docs/5.4/eloquent-collections
$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'');