我的代码用于正常工作但现在出现错误
(ErrorException(E_NOTICE)Undefined index:password)
我真的不知道为什么,所以如果你知道请帮助我。我搜索了谷歌类似的异常并尝试了我看到的所有内容但仍然没有成功......这是我的代码
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~';
}
}
}
查看login / 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
答案 0 :(得分: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。
答案 1 :(得分:0)
问题是属于您的类提供程序validateCredentials
的{{1}}方法期望EloquentUserProvider
数组具有名为$credentials
的数组元素并期望它被散列
如图所示here:
password
并且您的代码中的第一次尝试调用中发送了错误的数组
/**
* 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]))