2016-11-15 12 views
0

Ich werde versuchen, dies so klar wie möglich zu machen.Laravel Benutzer Update Probleme

Ich habe einen make-Auth-Aufruf ausgerollt, um die Login- und Registrierungsfunktion von Laravel zu verwenden, und habe später einfach die Vorlage verwendet, um die Bedürfnisse zu liefern, die ich wollte.

  1. Wenn der Benutzer admin ist, kann er/sie einen neuen Benutzer registrieren.

    public function openNewUser(){ 
    return view('auth.register'); 
    

    }

    NB. Teil für das Update.

    public function registerNewUser(Request $request){ 
         $this->validate($request,[ 
          'email' => 'required|email|unique:users', 
          'name' => 'required|max:120', 
          'password' => 'required|min:4|confirmed']); 
    
         $user = new User(); 
    
         $user->name = $request->name; 
         $user->email = $request->email; 
         $user->password = encrypt($request->password); 
    
         if (Gate::denies('register-user')) { 
          return redirect()->back(); 
         } 
    
         $user->save(); 
         return view('home'); 
        } 
    
    1. Problem 1 - Ich möchte auch Benutzer aktualisieren, da diese Probleme gibt. Die Passworteingaben geben leere Felder zurück, die ich verstehe. Wenn ich versuche, es zu ändern, funktioniert das Bestätigungskennwort immer falsch, obwohl sie identisch sind. Wenn ich es auch leer lasse, funktioniert es nicht, weil das Feld ausgefüllt werden muss. Ich nahm sie vom Formular und versuchte, wenn ich die E-Mail nur bearbeiten konnte, aber nur nicht arbeitete.

public function userUpdate (Request $ request, $ user_id) {

$this->validate($request,[ 
     'email' => 'required|email', 
     'name' => 'required|max:120', 
     'password' => 'required|min:4|confirmed']); 
     $user = new User(); 
     $user->name = $request->name; 
     $user->email = $request->email; 
     $user->password = encrypt($request->password); 

    if (Gate::allows('register-user')) { 
      $user->save(); 

     $user->roles()->attach($request->roles); 
     return redirect()->route('view_users'); 
    }elseif (Gate::denies('register-user')) { 
     if (Auth::id() == $user_id) { 
      $user->save(); 

      $user->roles()->attach($request->roles); 
      return redirect()->route('view_users'); 
     }else{ 
      return redirect()->back(); 
     } 
    } 

} 

Problem 2. Ich habe erkannt, alle Logins ich mit meiner neuen Registrierung tue gibt Diese Anmeldeinformationen entsprechen nicht unseren records.Auch wenn die Anmeldeinformationen vorhanden sind und ordnungsgemäß registriert wurden. Ich benutze den Login von Laravel aber ich habe meine eigene Registrierung erstellt.

Bitte wie kann ich meine Benutzer bearbeiten und aktualisieren und auch nach der Anmeldung anmelden kann

+0

Wild rate: Ist es möglich, dass Sie in der Zwischenzeit Ihren Anwendungsschlüssel geändert haben ('php artisan key: generate')? – dbr

+0

@dbr nein Ich habe den Schlüssel nicht geändert, alles scheint gut zu sehen und sollte funktionieren? – user3602477

Antwort

0

Ich habe herausgefunden, was falsch war, Da ich Laravel Login benutze, musste meine Registrierung brecrypt für die Verschlüsselung verwenden, die Laravel Registrierung verwendet, aber ich verwendete verschlüsseln, wenn ich meine eigene Registrierung erstellt, so gab es einen Konflikt beim einloggen. (Remembere habe ich mit Laravels Login nicht mein eigenes Login geschrieben). Ich hoffe, das hilft jemandem

0

Welche Version von Laravel spielt Du?

Hier ist meine (v5.3) register() Verfahren in RegisterController.php, zumindest einen Teil für die Anmeldung:

public function register(Request $request) 
{ 
... 
// save and login user 
$user = $this->create($request->all()); 
$this->guard()->login($user); 
... 
} 
... 
protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'lastname' => $data['lastname'], 
     'phone' => $data['phone'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

und die login() Methode von LoginController.php

public function login(Request $request) 
{ 
$credentials = $this->credentials($request); 
... 
if ($this->guard()->attempt($credentials, $request->has('remember'))) { 
     return $this->sendLoginResponse($request); 
    } 
} 

Hoffentlich haben vermisse ich nichts . Denken Sie daran, dass sich die Dinge seit Version 5.2 geändert haben.

+0

Obwohl ich meinen eigenen Benutzer erstelle benutze ich Laravels auth um mich anzumelden, also schreibe ich eigentlich nicht meinen eigenen Login Code. ________ Aber die seltsame Sache, die geschieht, bevor ich Register-Code schrieb Ich registrierte einen Benutzer mit Laravels-Registrierung-Methode.Nachdem ich meine Codes geändert habe, kann ich mich immer noch mit dem Benutzer anmelden, den ich zuerst erstellt habe, aber alle Benutzer, die ich mit meinem Code erstellt habe, werden in der Datenbank registriert, aber ich kann mich nicht mit ihnen anmelden – user3602477