Laravel 登录后重定向不起作用,但注册后可以正常工作

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">

我使用了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">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']);
    }

}