Laravel vérifier si l'enregistrement existe

Nouveau sur laravel, alors excusez la question des débutants mais comment puis-je trouver si un enregistrement existe?

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

Que ferais-je ici pour voir si $user est un record?

154
demandé sur brunohdaniel 2014-11-24 01:24:42

13 réponses

Cela dépend si vous voulez travailler avec l'utilisateur par la suite ou seulement vérifier si un existe.

Si vous souhaitez utiliser l'objet utilisateur s'il existe:

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

Et si vous voulez seulement vérifier

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

Ou encore plus agréable

if (User::where('email', '=', Input::get('email'))->exists()) {
   // user found
}
349
répondu lukasgeiter 2015-06-11 09:11:46

L'une des meilleures solutions consiste à utiliser la méthode firstOrNew ou firstOrCreate.

16
répondu tapos ghosh 2016-12-21 18:34:34
if($user->isEmpty()){
    // has no records
}

Éloquent utilise des collections. Voir le lien suivant: https://laravel.com/docs/5.4/eloquent-collections

5
répondu Nabil 2017-07-25 03:17:26
if (User::where('email', Input::get('email'))->exists()) {
    // exists
}
2
répondu lucidlogic 2017-12-21 12:44:14

Il est simple de savoir s'il y a des enregistrements ou non

$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
0
répondu sunshine 2017-03-14 10:47:19

Dans votre contrôleur

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

Dans votre vue-Afficher déjà un Message

@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
0
répondu Karthik 2017-05-11 07:29:31
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
0
répondu Mathesh Raj 2017-07-04 16:42:48

Vous pouvez utiliser la validation laravel .

Mais ce code est aussi bon:

$user = User::where('email',  $request->input('email'))->count();

if($user > 0)
{
   echo "There is data";
}
else
   echo "No data";
0
répondu hamidteimouri 2017-10-31 13:08:24

Cela vérifiera si une adresse e-mail particulière existe dans la table:

if (isset(User::where('email', Input::get('email'))->value('email')))
{
    // Input::get('email') exist in the table 
}
0
répondu Syed Muzammil Ali 2017-12-31 20:27:14

La recherche de null dans l'instruction if empêche Laravel de renvoyer 404 immédiatement après la fin de la requête.

if ( User::find( $userId ) === null ) {

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

    return $user;
}

, Il semble qu'il s'exécute double requête si l'utilisateur est trouvé, mais je n'arrive pas à trouver une autre solution fiable.

0
répondu Arthur Tarasov 2018-07-09 04:04:47

Laravel 5.6.26 v

Pour trouver l'enregistrement existant via la clé primaire (email ou id)

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

Puis

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

Inclure "utiliser DB" et le nom de la table user devient pluriel en utilisant la requête ci-dessus comme user to users

0
répondu Nadeem Qasmi 2018-07-11 07:07:52

Options de travail les plus courtes:

// 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();
-1
répondu wheelmaker 2018-09-30 06:23:05

C'est un code simple pour vérifier que l'email existe ou non dans la base de données


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

-6
répondu ram pratap singh 2017-03-29 11:24:47