Laravel 5.4更改默认用户名和密码字段

时间:2017-08-31 07:50:09

标签: laravel laravel-5 laravel-5.4

我继承了一个我正在移植到laravel的应用程序。他们已经设计了数据库,他们使用不同的表进行身份验证,而不是laravel的默认值。在数据库中,它们具有大写字段名称。

电子邮件保存在名为MCP_EMAIL的字段中,密码保存在名为MCP_PASSWORD的字段中

我已设法更改注册过程,用户可以注册正常。 问题出在登录上。当您尝试登录时,没有任何反应。没有错误消息,没有日志,没有。它只是不断回到登录页面!

这是用户类。

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{

    use Notifiable;

    protected $table = "user_profiles";

    protected $primaryKey ="MCP_ID";

    protected $rememberTokenName = 'MCP_REMEMBER_TOKEN';


    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'MCP_DISPLAY_NAME', 'MCP_EMAIL', 'MCP_PASSWORD',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    const CREATED_AT  = "ADDED";
    const UPDATED_AT = "MODIFIED";

    public function getAuthPassword(){
        return $this->MCP_PASSWORD;
    }

    //seems to be a repetition of protected$rememberTokenName 
    public function getRememberTokenName()
    {
        return $this->MCP_REMEMBER_TOKEN;
    }

}

登录控制器

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facade\Auth;
use Log;

class LoginController extends Controller
{       

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function username(){
        return 'MCP_EMAIL';
    }

}

我错过了什么?为什么我看不到任何错误消息?

更新

我做的一切都是正确的。除了执行上述所有操作外,您还需要在login.blade.php

中更改输入的名称
<div class="form-group{{ $errors->has('MCP_EMAIL') ? ' has-error' : '' }}">
                            <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                            <div class="col-md-6">
                                <input id="MCP_EMAIL" type="email" class="form-control" name="MCP_EMAIL" value="{{ old('MCP_EMAIL') }}" required autofocus>

                                @if ($errors->has('MCP_EMAIL'))
                                    <span class="help-block">
                                        <strong>{{ $errors->first('MCP_EMAIL') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

请参阅related question here

1 个答案:

答案 0 :(得分:-2)

您是否知道L5.4附带预先构建的身份验证,以便为您需要运行php artisan auth:make的脚手架提供快速方式,我非常确定您需要在{{}}内附加某些功能{1}}特征,除非是数据库列。看看AuthenticatesUsers

如果您不使用身份验证脚手架:

1)无需从AuthenticatesUsers

中移除AuthenticatesUsers

2)根据本节Manually Authenticating Users

尝试实施LoginController