电子邮件字段是必需的,但视图中没有输入电子邮件 Laravel
The email field is required but no input email in view Laravel
我不断收到此错误消息:
- The email field is required.
但在我看来,我没有任何带有电子邮件名称的输入类型:
登录
<link rel="shortcut icon" href="{{ asset('img/logo.png') }}" type="image/x-icon">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,800" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('css/feather.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/style.css') }}">
<link rel="stylesheet" href="{{ asset('css/jquery.mCustomScrollbar.css') }}">
</head>
<body>
<section class="login-block">
<div class="container">
<div class="row">
<div class="col-md-12">
<form action="/login" method="post" class="md-float-material form-material">
@csrf
<div class="auth-box card">
<div class="card-block">
<div class="row m-b-20">
<div class="col-md-12">
<h3 class="text-center">Members Management System</h3>
</div>
</div>
@if ($errors)
<div class="alert alert-danger background-danger">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<i class="icofont icofont-close-line-circled text-white"></i>
</button>
@foreach ($errors->all() as $error)
- {{ $error }}
<br>
@endforeach
</div>
@endif
<div class="form-group form-primary">
<input type="text" name="employee_id" class="form-control" required=""
placeholder="Employee ID">
<span class="form-bar"></span>
</div>
<div class="form-group form-primary">
<input type="password" name="password" class="form-control" required=""
placeholder="Password">
<span class="form-bar"></span>
</div>
<div class="row m-t-30">
<div class="col-md-12">
<button type="submit"
class="btn btn-primary btn-md btn-block waves-effect waves-light text-center m-b-20">
SIGN IN
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<script src="{{ asset('js/jquery.min.js') }}"></script>
<script src="{{ asset('js/jquery-ui.min.js') }}"></script>
<script src="{{ asset('js/script.js') }}"></script>
</body>
</html>
我不明白为什么 $errors
会通知我有关电子邮件的错误。有什么建议么?我没有修改 Laravel 的任何默认 AUTH 设置。错误似乎来自其他来源?
编辑:
感谢您建议通过以下方式覆盖我的 LoginController
中的 username()
:
public function username()
{
return 'employee_id';
}
这是最传统和首选的方法吗?谢谢你的帮助。
您可以在登录时将 employee_id
引用为 username
。
现在,打开 LoginController,并添加 username()
方法。
public function username() {
return "username";
}
现在,您无需电子邮件地址也可以登录。
AuthenticatesUsers
负责在用户提交表单后验证数据。如果你看一下这个文件,你会看到这个方法:
/**
* Validate the user login request.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
更具体地说,如您所见,此方法负责在字段名称 "password" 上调用验证程序并通过方法 username()。如果你只想自定义用户名字段,你可以覆盖 LoginController 中的 username() 方法 class:
public function username()
{
return 'employee_id';
}
但是既然你想自定义用户名字段名和密码字段名,我建议你覆盖LoginController中的validateLogin()方法class:
protected function validateLogin(Request $request)
{
$this->validate($request, [
'employee_id' => 'required|string',
'user_password' => 'required|string',
]);
}
希望对您有所帮助。
我不断收到此错误消息:
- The email field is required.
但在我看来,我没有任何带有电子邮件名称的输入类型:
登录
<link rel="shortcut icon" href="{{ asset('img/logo.png') }}" type="image/x-icon">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,800" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('css/feather.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/style.css') }}">
<link rel="stylesheet" href="{{ asset('css/jquery.mCustomScrollbar.css') }}">
</head>
<body>
<section class="login-block">
<div class="container">
<div class="row">
<div class="col-md-12">
<form action="/login" method="post" class="md-float-material form-material">
@csrf
<div class="auth-box card">
<div class="card-block">
<div class="row m-b-20">
<div class="col-md-12">
<h3 class="text-center">Members Management System</h3>
</div>
</div>
@if ($errors)
<div class="alert alert-danger background-danger">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<i class="icofont icofont-close-line-circled text-white"></i>
</button>
@foreach ($errors->all() as $error)
- {{ $error }}
<br>
@endforeach
</div>
@endif
<div class="form-group form-primary">
<input type="text" name="employee_id" class="form-control" required=""
placeholder="Employee ID">
<span class="form-bar"></span>
</div>
<div class="form-group form-primary">
<input type="password" name="password" class="form-control" required=""
placeholder="Password">
<span class="form-bar"></span>
</div>
<div class="row m-t-30">
<div class="col-md-12">
<button type="submit"
class="btn btn-primary btn-md btn-block waves-effect waves-light text-center m-b-20">
SIGN IN
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<script src="{{ asset('js/jquery.min.js') }}"></script>
<script src="{{ asset('js/jquery-ui.min.js') }}"></script>
<script src="{{ asset('js/script.js') }}"></script>
</body>
</html>
我不明白为什么 $errors
会通知我有关电子邮件的错误。有什么建议么?我没有修改 Laravel 的任何默认 AUTH 设置。错误似乎来自其他来源?
编辑:
感谢您建议通过以下方式覆盖我的 LoginController
中的 username()
:
public function username()
{
return 'employee_id';
}
这是最传统和首选的方法吗?谢谢你的帮助。
您可以在登录时将 employee_id
引用为 username
。
现在,打开 LoginController,并添加 username()
方法。
public function username() {
return "username";
}
现在,您无需电子邮件地址也可以登录。
AuthenticatesUsers
负责在用户提交表单后验证数据。如果你看一下这个文件,你会看到这个方法:
/**
* Validate the user login request.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
更具体地说,如您所见,此方法负责在字段名称 "password" 上调用验证程序并通过方法 username()。如果你只想自定义用户名字段,你可以覆盖 LoginController 中的 username() 方法 class:
public function username()
{
return 'employee_id';
}
但是既然你想自定义用户名字段名和密码字段名,我建议你覆盖LoginController中的validateLogin()方法class:
protected function validateLogin(Request $request)
{
$this->validate($request, [
'employee_id' => 'required|string',
'user_password' => 'required|string',
]);
}
希望对您有所帮助。