2017-02-27 29 views
2

使用我的代码能够正常工作,但现在有一个错误laravel 4未定义指数:密码

(ErrorException(E_NOTICE)未定义指数:密码)

我真的不知道为什么,所以如果你知道请帮助我。我搜索谷歌类似的异常,并尝试我看到的一切,但仍然没有成功...这里是我的代码

route.php

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 .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~'; 
    } 
}