Je suis nouveau à Laravel. Veuillez excuser la question du débutant, mais comment puis-je savoir si un enregistrement existe?
<?php
$user = User::where('email', '=', Input::get('email'));
Que puis-je faire ici pour voir si $user
a un enregistrement?
Cela dépend si vous voulez travailler avec l'utilisateur par la suite ou seulement vérifier s'il en existe un.
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 même mieux
if (User::where('email', '=', Input::get('email'))->exists()) {
// user found
}
Une des meilleures solutions consiste à utiliser la méthode firstOrNew
ou firstOrCreate
. La documentation a plus de détails sur les deux.
if($user->isEmpty()){
// has no records
}
Eloquent utilise des collections. Voir le lien suivant: https://laravel.com/docs/5.4/eloquent-collections
if (User::where('email', Input::get('email'))->exists()) {
// exists
}
Laravel 5.6.26v
trouver l'enregistrement existant par 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
}
include "use DB" et le nom de la table utilisateur deviennent pluriels à l'aide de la requête ci-dessus comme utilisateur à utilisateurs
if (User::where('email', '[email protected]')->first())
// It exists
else
// It does not exist
Utilisez first()
, pas count()
si vous ne devez vérifier que l'existence.
first()
est plus rapide car il recherche une seule correspondance alors que count()
compte toutes les correspondances.
if ($u = User::where('email', '=', $value)->first())
{
// do something with $u
return 'exists';
} else {
return 'nope';
}
travaillerait avec try/catch
-> get () retournerait toujours un tableau vide
Créé ci-dessous méthode (pour moi-même) pour vérifier si l'ID d'enregistrement donné existe sur la table Db ou non.
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);
Accueil Ça aide!
Je pense que ci-dessous est le moyen le plus simple de réaliser la même chose:
$user = User::where('email', '=', $request->input('email'))->first();
if ($user) {
// user doesn't exist!
}
voici un lien vers quelque chose que je pense pouvoir aider https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
Dans laravel éloquent, a sa méthode existe () par défaut, reportez-vous à l'exemple suivant.
if(User::where('id', $user_id )->exists()){ // your code... }
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
peut être écrit comme
if (User::where('email', '=', Input::get('email'))->first() === null) {
// user doesn't exist
}
Cela renverra true ou false sans attribuer une variable temporaire si c'est tout ce que vous utilisez pour $ user dans l'instruction d'origine.
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";
C'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";
Ceci vérifiera si une adresse email particulière existe dans la table:
if (isset(User::where('email', Input::get('email'))->value('email')))
{
// Input::get('email') exist in the table
}
$email = User::find($request->email);
If($email->count()>0)
<h1>Email exist, please make new email address</h1>
endif
Très simple
if (User::where('email', $request->input('email')->first())
{
// User exists
} else{
// User does not exist
}
obtenir le mot de passe du même utilisateur que
$user = User::where('email', '=', $email)->first();
$user->password
dd($user);
Merci
Ceci vérifiera si les emails demandés existent dans la table des utilisateurs:
if (User::where('email', $request->email)->exists()) {
//email exists in user table
}
La vérification de l'instruction null
dans 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;
}
On dirait qu'il lance une double requête si l'utilisateur est trouvé, mais je n'arrive pas à trouver une autre solution fiable.
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
Dans votre contrôleur
$this->validate($request, [
'email' => 'required|unique:user|email',
]);
Dans votre affichage - Afficher le message déjà existant
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif