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?
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
}
L'une des meilleures solutions consiste à utiliser la méthode firstOrNew
ou firstOrCreate
.
if($user->isEmpty()){
// has no records
}
Éloquent utilise des collections. Voir le lien suivant: https://laravel.com/docs/5.4/eloquent-collections
if (User::where('email', Input::get('email'))->exists()) {
// exists
}
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";
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
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
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";
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
}
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.
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
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();
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'; }