2
votes

Connectez un utilisateur uniquement si le statut = '1' dans laravel 5.2

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.


0 commentaires

3 Réponses :


0
votes

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');


3 commentaires

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.



0
votes

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();


5 commentaires

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 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.



0
votes

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.


6 commentaires

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.