2014-10-17 7 views
4

Привет, у меня проблема с Laravel. Я не могу войти. Я пробовал все, что нашел в Интернете. Может быть, у кого-то есть идея, где я ошибся. Создать нового пользователя и отправить электронную почту. Войдите в систему. Я не знаю, как работает loop, чтобы вернуться к ошибкам или сообщениям. Я работаю с режимом отладки в laravel, но у него не было никаких ошибок.Laravel вход (Auth :: попытка) не работает

<?php 
    class AccountController extends BaseController { 

     //Sign in function start 

     public function getSignIn(){ 
      return View::make('account.signin'); 
     } 

     public function postSignIn(){ 
      $validator = Validator::make(Input::all(), 
       array(
        'email'     => 'required|email', 
        'username'   => 'required' 
       ) 
      ); 

      if($validator->fails()){ 

       return Redirect::route('account-sign-in') 
        ->withErrors($validator) 
        ->withInput(); 

      }else{ 

       if($auth = Auth::attempt(array(
        'email' => Input::get('email'), 
        'password' => Input::get('password'), 
        'active' => 1 

       ), true)){ 
        return Redirect::to('/'); 
       }else{ 
        return Redirect::route('account-sign-in') 
         ->with('global', 'Email/password wrong or account not activated'); 
       } 

      } 

      return Redirect::route('account-sign-in') 
       ->with('global', 'There was a problem signing you in'); 
     } 

     //Sign in function end 




     //Create new account function start 

     public function getCreate(){ 
      return View::make('account.create'); 
     } 

     public function postCreate(){ 
      $validator = Validator::make(Input::all(), 
       array(
        'email'     => 'required|max:50|email|unique:users', 
        'username'   => 'required|max:20|min:3|unique:users', 
        'password'   => 'required|min:6', 
        'password_again' => 'required|same:password' 
       ) 
      ); 


      if($validator->fails()){ 
       return Redirect::route('account-create') 
        ->withErrors($validator) 
        ->withInput(); 
      }else{ 

       $email  = Input::get('email'); 
       $username = Input::get('username'); 
       $password = Input::get('password'); 

       //Activation code 

       $code  = str_random(60); 

       $user = User::create(array(
        'email'   => $email, 
        'username' => $username, 
        'password' => Hash::make($password), 
        'code'  => $code, 
        'active' => 0 

       )); 

       if($user){ 

        //Send link function start 

        Mail::send('emails.auth.active', array(
         'link' => URL::route('account-active', $code), 
         'username' => $username),function($message) use ($user){$message->to($user->email, $user->username)->subject('Activation your account');}); 

        //Send link function end 

        return Redirect::route('home') 
         ->with('global', 'Your account has been created! We have sent you an email with activation link'); 
       } 
      } 
     } 
     public function getActivate($code){ 
      $user = User::where('code', '=', $code)->where('active', '=', 0); 

      if($user->count()){ 
       $user = $user->first(); 

       //Update user to active state 

       $user->active = 1; 
       $user->code   =''; 

       if($user->save()){ 
        return Redirect::route('home') 
         ->with('global', 'Activated! You can now sign in!'); 
       } 
      } 
       return Redirect::route('home') 
        ->with('global', 'We could not activate your account. Please try again later.'); 


     } 

     //Create new account function end 

    } 

?> 
+0

Вы уверен, что форма отправки запроса POST, а не GET –

ответ

1

В postSignIn() валидатора вы указываете, что username требуется, когда от того, что я могу видеть из вашей логики и сообщения об ошибках, необходимо пользователю указать адрес электронной почты и пароль для входа в систему. Вместо этого попробуйте:

$validator = Validator::make(Input::all(), 
    array(
     'email'     => 'required|email', 
     'password'   => 'required' 
    ) 
); 

При подаче регистрационной формы с email и password, валидатор всегда терпит неудачу, так как нет username входа

Смежные вопросы