[英]Laravel 5 login with username instead of email
这是我的 login.blade.php
@extends('layouts.main')
@section('errors')
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@section('content')
<form method="POST" action="/auth/login">
{!! csrf_field() !!}
<div>
Email
<input type="email" name="email" value="{{ old('email') }}">
</div>
<div>
Password
<input type="password" name="password" id="password">
</div>
<div>
<input type="checkbox" name="remember"> Remember Me
</div>
<div>
<button type="submit">Login</button>
</div>
</form>
</body>
@stop
第二个问题:如何重置密码? 提前致谢 ;)
您在表单中将电子邮件更改为用户名
<form method="POST" action="/auth/login">
{!! csrf_field() !!}
<div>
Email
<input type="text" name="username" value="{{ old('username') }}">
</div>
<div>
Password
<input type="password" name="password" id="password">
</div>
<div>
<input type="checkbox" name="remember"> Remember Me
</div>
<div>
<button type="submit">Login</button>
</div>
</form>
在您 AuthenticatesAndRegisterUsers.php 中,您也将电子邮件更改为用户名。
public function postLogin(Request $request)
{
$this->validate($request, [
'username' => 'required', 'password' => 'required',
]);
$credentials = $request->only('username', 'password');
if ($this->auth->attempt($credentials, $request->has('remember')))
{
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('username', 'remember'))
->withErrors([
'username' => $this->getFailedLoginMessage(),
]);
}
默认情况下, Laravel 使用 email 字段进行身份验证。 如果你想自定义这个,你可以在你的 LoginController 上定义一个 username 方法:
public function username()
{
return 'username';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.