我继承了一个我正在移植到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>
答案 0 :(得分:-2)
您是否知道L5.4附带预先构建的身份验证,以便为您需要运行php artisan auth:make
的脚手架提供快速方式,我非常确定您需要在{{}}内附加某些功能{1}}特征,除非是数据库列。看看AuthenticatesUsers
如果您不使用身份验证脚手架:
1)无需从AuthenticatesUsers
AuthenticatesUsers
2)根据本节Manually Authenticating Users
尝试实施LoginController