2017-02-27 14 views
2

私のコードは正常に動作するために使用されるが、今でエラーがlaravel 4未定義のインデックス:パスワード

(ErrorException(E_NOTICE)未定義のインデックス:パスワード)があるので、私は本当に理由を知らない

を、あなたが私を助けてください知っている場合。私は同様の例外についてはグーグルを検索し、私が見るすべてのものが、まだありません成功を試してみてください...ここで

Route::resource('login', 'LoginController'); 

LoginController

 public function store(){ 

     /*$credentials = array(
      'username' => Input::get('username'), 
      'password' => Hash::make(Input::get('password')), 
     );*/ 

     if(Auth::attempt(['active' => 1])) { 

      // if(Auth::attempt($credentials)){ 

      if(Auth::attempt(Input::only('username', 'password'))){ 

       return Auth::user(); 
       //return Redirect::back()->with('message','You are now logged in!'); 
       //return Redirect::to('/')->with('message','You are now logged in!'); 
      } 
      else{ 
       //$errors = ['password' => "Username and/or password invalid."]; 
       //return Redirect::back()->withErrors($errors)->withInput(Input::except('password')); 
       return 'Failed~'; 
      } 
     } 
     else{ 
      //$errors = ['password' => "Please check your email to activate your account"]; 
      //return Redirect::back()->withErrors($errors)->withInput(Input::except('password')); 
      return 'Failed~'; 
     } 
    } 
} 

見るログイン/ create.blade

route.php私のコードです.PHP

@section('content') 
    <div class="col-lg-3"></div> 
    <div class="form col-lg-6 box"> 

     {{ Form::open(['route' => 'login.store'], array('class' => 'form-horizontal')) }} 

    {{-- @if ($error = $errors->first('password')) 
      <div class="alert alert-danger"> 
       {{ $error }} 
      </div> 
     @endif--}} 
     <div class="input-group form-group-md"> 
      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> 
      {{ Form::text('username', null,['class' => 'form-control','autofocus'=>'autofocus', 'placeholder' => 'Username']) }} 
     </div> 
     <div class="input-group form-group-md"> 
      <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span> 
      {{ Form::password('password', array('class' => 'form-control', 'placeholder' => 'Password')) }} 
     </div> 

     <div class="form-group-md"> 
      <a href="/home" class="link">Forgot your password?</a> 
     </div> 
     <div class="form-group-md"> 
      {{ Form::submit('Log In', array('class' => 'login navbar-btn btn-block form-control', 'autofocus'=>'autofocus')) }} 
     </div> 

     <div class="question form-group-md"> 
      {{ Form::label('register', 'Do not have an account?! ') }} <a href="{{ url('users/create') }}" class="link">Register here!</a> 
     </div> 
    {{ Form::close() }} 
    </div> 
    <div class="col-lg-3"> </div> 
@stop 

error

+1

このエラーいいえ? – Naincy

答えて

0

コードを次のように書き換えます。

$username = Input::get('username'); 
$password = Input::get('password'); 
// You also may add extra conditions to the authenticating query 
if (Auth::attempt(array('username' => $username, 'password' => $password, 'active' => 1))) 
{ 
    // The user is active, not suspended, and exists. 
}else{ 
    // user not exist or suspended 
} 

linkも参照してください。

+0

これは完璧に感謝します –

+0

ようこそ。お力になれて、嬉しいです :-) –

0

問題があるvalidateCredentials方法がEloquentUserProvider$credentials配列は、配列要素がpasswordと呼ばれ、それがハッシュ化されることを想定していることを期待し、あなたのクラスのプロバイダに属していることです。

hereを示すように:

コード内
/** 
* Validate a user against the given credentials. 
* 
* @param \Illuminate\Contracts\Auth\Authenticatable $user 
* @param array $credentials 
* @return bool 
*/ 
public function validateCredentials(UserContract $user, array $credentials) 
{ 
    $plain = $credentials['password']; 
    return $this->hasher->check($plain, $user->getAuthPassword()); 
} 

、あなたはあなたのコードいくつかのことを書き換えることがあり、これを解決するための最初の試みコール

if(Auth::attempt(['active' => 1]))

に間違った配列を送信していますこのように、

public function store() 
{ 
    $credentials = array(
     'username' => Input::get('username'), 
     'password' => Hash::make(Input::get('password')), 
     'active' => 1 
    ); 

    if(Auth::attempt($credentials)) { 
     return Auth::user(); 
    } else { 
     return 'Failed~'; 
    } 
}