2016-04-27 17 views
4

Ich habe ein Problem beim registiering Benutzer in Laravel, $user angenommen, um Array sein, die alle Array-Element enthält, während automatische Anmeldung die folgenden Code Ergebnisse false. Das Kennwort, das in der Datenbank gespeichert wird, ist hash::make('password').Wie man automatische Anmeldung nach der Registrierung in Laravel

$user_id = $this->user_model->addUser($user); 
$post = array('password' => $pass_for_auth, 'email' => $email); 
var_dump(Auth::attempt($post,true));die; 

Kann jemand mir sagen, was das

richtige Problem ist

Antwort

4

Sie können versuchen, den Benutzer durch seine $user_id einzuloggen. So wird Ihr Code sein:

$user_id = $this->user_model->addUser($user); 
$post = array('password' => $pass_for_auth, 'email' => $email); 
Auth::loginUsingId($user_id); 

Sie den Benutzer erstellt, so dass es eine user_id zurückgibt, mit der user_id Sie den Benutzer anmelden kann.

Hoffe, das funktioniert!

Weitere Informationen unter: https://laravel.com/docs/5.2/authentication#other-authentication-methods

4

Dies ist der normale Weg wäre, eine Benutzerregistrierung zu tun - Sie eine neue Benutzermodell-Instanz erstellen und weitergeben :: Anmelden von Auth():

// do not forget validation! 
$this->validate($request, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|confirmed|min:6', 
     ]); 

$data = $request->all(); 

$user = User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 

Auth::login($user); 
+0

was diese Auth-Klasse? Können Sie den vollständigen Namespace angeben? –

+0

@RameshPareek Keine Notwendigkeit dafür. Es hat einen Alias. Verwenden Sie einfach "Auth". Wenn Sie wirklich wollen, können Sie den Pfad in 'config/app.php'' 'Aliase' Schlüssel finden, der ist:' Illuminate \ Support \ Facades \ Auth'. – totymedli

Verwandte Themen