Je travaille avec laravel 5.2 et je souhaite connecter l'utilisateur si le statut est actif
Route::get('/ProductInquiry', function(){
$id = session('esysid');
$user = UsersModel::where('employeeID', 'LIKE', $id)->get();
session(['name' => $user[0]->sAMAccountName]);
return view('home');
})->name('home');
J'ai une colonne de statut dans ma base de données et j'ai besoin d'aide pour authentifier les utilisateurs actifs en obtenant le statut de l'utilisateur ici dans les itinéraires, afin que je puisse savoir qui sont les utilisateurs actifs du système. Je compte connecter les utilisateurs qui ont un statut = 1.
3 Réponses :
Essayez :
Route::get('/ProductInquiry', function(){
$id = session('esysid');
$user = UsersModel::where('employeeID', $id)->whereStatus(1)->first();
session(['name' => $user->sAMAccountName]);
return view('home');
})->name('home');
Salut Abolfazl Mohajeri, j'obtiens le: ErrorException dans routes.php ligne 38: Essayer d'obtenir la propriété 'sAMAccountName' de non-objet
essayez de dd ($ user) pour vous assurer qu'il n'est pas nul et qu'il s'agit d'un objet contenant sAMAccountName
Ça marche maintenant! merci les gars pour l'aide, je l'apprécie vraiment.
Vous devriez repenser la vérification des informations utilisateur
$user = UsersModel::whereStatus(1)->find($id)->get();
ou
$user = UsersModel::where('status', 1)->find($id)->get();
Bonjour MuhittinCokelek, j'ai rencontré une erreur: QueryException dans la ligne Connection.php 729: SQLSTATE [42S22]: Colonne introuvable: 1054 Colonne inconnue 'e_base_201.id' dans 'clause where' (SQL: sélectionnez * à partir de e_base_201 code> où status = 1 et e_base_201 . id = WIZ-17-009 limite 1)
@MuhittinCokelek Veuillez consulter la description de la fonction find de laravel.
vous pouvez ajouter protected $ privateKey = "employeeID"; dans votre UsersModel (j'ai deviné que votre clé primaire n'est pas id
Je suis confus, désolé ma clé primaire est idCount qui compte tous les utilisateurs de la table.
Ça marche maintenant! merci les gars pour l'aide, je l'apprécie vraiment.
Vous pouvez utiliser Laravel Where Clause pour atteindre votre résultat
Route::get('/ProductInquiry', function(){
$id = session('esysid');
$userDetail = UsersModel::where('employeeID', $id)->where('status', 1)->first();
session(['name' => $userDetail->sAMAccountName]);
return view('home');
})->name('home');
De plus, comme l'ID d'employé est unique, vous pouvez utiliser d'abord à la place de la méthode get .
get () - Retourne une collection.
first () - Renvoie un seul objet.
Salut Ankur Tiwari, j'obtiens également la même erreur lorsque j'applique le code: ErrorException dans routes.php ligne 38: Essayer d'obtenir la propriété 'sAMAccountName' de non-objet
EmployeeID unique pour tous les utilisateurs? Parce qu'actuellement, vous utilisez Like . Au lieu de Like , vous pouvez passer directement $ id dans votre clause where
Vérifiez le code mis à jour, assurez-vous que le EmployeeID que vous voulez existe dans DB.
Merci beaucoupuuuuu !!! Cela fonctionne maintenant, je peux maintenant me connecter à l'utilisateur qui a un statut = 1 :) et le statut qui a un statut = l'accès '0' est maintenant refusé. Merci Ankur Tiwari! :)
Super @ NikNik16, continuez à coder :)
@ NikNik16 Veuillez accepter la réponse, ce sera donc utile pour ceux qui ont le même type d'erreur.