我正在Laravel 5.1中编写一个应用程序。根据文档,我可以使用他们的AuthController对我的登录表单进行身份验证和验证。
我要验证的唯一字段是code-input
字段。
<form method="POST">
<div class="form-group">
<label for="code-input">Code</label>
<input type="text" name="code-input" class="form-control" id="code-input" placeholder="Type your code here">
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<button type="submit" class="btn btn-default">Submit</button>
</form>
然而,每当我在AuthController中设置我的验证方法以仅检查该字段并提交空表单时出现错误,则需要电子邮件字段并且需要密码字段。什么是什么?
protected function validator(array $data)
{
return Validator::make($data, [
'code-input' => 'required|max:255'
]);
}
我的路线也正常运作:
Route::get('/', 'Auth\AuthController@getLogin');
Route::post('/', 'Auth\AuthController@postLogin');
Route::get('/logout', 'Auth\AuthController@getLogout');
有人知道发生了什么吗?
答案 0 :(得分:1)
您是否检查了 AuthenticatesUsers.php 中的postLogin
功能?它可能有一行类似的代码导致验证错误:
$this->validate($request, [
$this->loginUsername() => 'required', 'password' => 'required',
]);
答案 1 :(得分:1)
validator
方法仅用于创建用户(注册)。登录全部由AuthenticatesUsers特征postLogin
方法处理,该方法需要电子邮件和密码。
有很多方法可以更改&#34;电子邮件&#34;要求很容易,但要删除这两个字段并替换为代码,您必须自己编写一个新的postLogin
方法。