Laravel 登录后重定向不起作用,但注册后可以正常工作
我使用了php artisan make:auth。我正在将电子邮件更改为用户名进行登录。 在login.blade.php中,我刚刚用用户名替换了电子邮件Laravel 登录后重定向不起作用,但注册后可以正常工作,laravel,laravel-5.3,Laravel,Laravel 5.3,我使用了php artisan make:auth。我正在将电子邮件更改为用户名进行登录。 在login.blade.php中,我刚刚用用户名替换了电子邮件 <div class="form-group{{ $errors->has('username') ? ' has-error' : '' }}"> <label for="username" class="col-md-4 control-label">
<div class="form-group{{ $errors->has('username') ? ' has-error' : '' }}">
<label for="username" class="col-md-4 control-label">Username</label>
<div class="col-md-6">
<input id="username" type="name" class="form-control" name="username" value="{{ old('username') }}" required autofocus>
@if ($errors->has('username'))
<span class="help-block">
<strong>{{ $errors->first('username') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
用户名
@如果($errors->has('username'))
{{$errors->first('username')}
@恩迪夫
密码
@如果($errors->has('password'))
{{$errors->first('password')}
@恩迪夫
现在,我没有收到错误的凭据的错误消息,也没有重定向到正确的凭据的/home
,登录页面只是重新加载。
我还在RegisterController的创建函数中添加了这个'username'=>$data['username'],
,它在注册后成功重定向到/home,但在登录时没有
我还重写了logincontroller中的这个属性:
protected$username='username'代码>在Laravel 5.3中,您可以覆盖LoginController.php
中的sendLoginResponse()
方法,例如:
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return redirect('/home');
}
您是否覆盖了以下功能
public function username()
位于:vendor/laravel/framework/src/illumb/Foundation/Auth/AuthenticatesUsers.php
更改:
public function username()
{
return 'email';
}
致:
还要确保在数据库中添加了用户名字段
您的LoginController应该如下所示:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
public function username()
{
return 'username';
}
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
}
将{{print\r($errors)}}放入模板时,是否收到任何消息?可能是在尝试验证电子邮件字段时,该字段不存在,因此现在不会显示该错误。@JanWytze我获得了电子邮件的错误,但我并不真正需要此illumb\Support\ViewErrorBag对象([bags:protected]=>Array([default]=>illumb\Support\MessageBag对象([messages:protected]=>Array([email]=>数组([0]=>电子邮件字段是必需的。))[format:protected]=>:message”)
此函数与此属性类似吗protected$username='username'代码>?@Steve不,这不是我做的,但它仍然没有重定向。我使用了返回重定向('/home')代码>内部已验证()。我正在尝试将电子邮件更改为用户名。这也不起作用。覆盖username()
有效。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
public function username()
{
return 'username';
}
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
}