【发布时间】:2017-01-15 09:56:55
【问题描述】:
我目前正在处理我的第一个 laravel 项目,但遇到了一个问题。
如果你有使用 laravel 的经验,你可能知道通过调用 php artisan make:auth 你会得到一个预定义的机制来处理登录和注册。
此机制旨在理解几个常用词,以使整个过程自动化。
在我的情况下发生的问题是我使用的是 oracle db,它不会让我有一个名为 password 的表列,因为它是一个系统关键字,并且在尝试插入用户时会引发错误.
到目前为止,我已尝试将我的 password 列更改为 passwd,并且它在我的注册表中按预期工作。用户行已成功插入,我的页面被重定向到 /home。
但是当我尝试注销然后重新登录时,我收到此错误消息,告诉我我的凭据不正确:
至于我的代码,我已经更改了我的RegisterController.php,以便它使用用户名而不是电子邮件
protected function validator(array $data)
{
return Validator::make($data, [
'username' => 'required|max:50|unique:ECON_USERS',
'passwd' => 'required|min:6|confirmed',
]);
}
protected function create(array $data)
{
return User::create([
'username' => $data['username'],
'passwd' => bcrypt($data['passwd'])
]);
}
用户 $fillable
protected $fillable = [
'username', 'passwd'
];
我猜 Auth 正在尝试使用 email 而不是 username 进行身份验证,或者 Auth 正在搜索 password 而不是 passwd。
【问题讨论】:
-
诸如此类的问题让我无法为新项目推荐 Laravel 5.4。我正在努力解决同样的问题。尽管在我的情况下,我更改了表名和密码字段名,并且必须在自定义用户表中添加一堆其他字段。不知道如何使用用户和驱动程序的 eloquant 模型让登录控制器再次工作。
-
我也有同样的问题,请问如何解决?