php - Laravel Auth 尝试不使用自定义用户模型
问题描述
我为我的网站生成了一个不同的表来存储用户。表的名称是 tblusers。我正在使用控制器方法 register() 注册新用户,我在其中添加了此代码
public function register(){
return User::create([
'User_Email' => 'test@example.com',
'User_UserName' => 'test@example.com',
'User_Password' => bcrypt('123'),
'User_Address' => 'ABCD....',
'User_IsActive' => 1,
'User_FullName' => 'Burhan Ahmed',
'User_AppID' => 1,
'User_IsVerified' => 1
]);
}
它在数据库中成功添加了上述虚拟数据。然后我尝试使用以下代码使用上述给定凭据登录:
dd(Auth::attempt(['User_UserName' => 'test@example.com', 'User_Password' => '123']));
但是上面的语句总是返回false,为什么?我错过了什么吗。我试图在上面的数组中传递实际的 bcrypt 代码而不是 '123' 它总是返回相同的结果。下面是我的模型类
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\DB;
//class User extends Authenticatable
class User extends Authenticatable
{
use Notifiable;
protected $table = 'tblusers';
protected $primaryKey = 'User_ID';
public $timestamps = false;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'User_UserName', 'User_Email', 'User_Password', 'User_Address', 'User_FullName', 'User_IsActive', 'User_IsVerified'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'User_Password'
];
}
我使用的是 Laravel 5.4,我遵循了所有的身份验证步骤,但无论我通过什么,它总是返回 false。
解决方案
如果您想更改登录的默认表,请按照以下步骤操作
例如,您将其更改为login_table
步骤1:
更改User.php
(用户模型)中的表属性
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'login_table';
步骤1:
如果你是初学者
现在您需要将表名更改users
为login_table
如果项目是团队协作进行迁移login_table
php artisan make:migration create_login_table_table
并添加表中可用的users
列
第三步:
现在打开文件app\Http\Controllers\Auth\RegisterController.php
你会发现方法validator
为
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
现在您需要更改unique:users
为unique:login_table
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:login_table',
'password' => 'required|string|min:6|confirmed',
]);
}
希望它对我有帮助,对我很好@Md.Sukel Ali
如果不起作用,请评论
推荐阅读
- python - 如何在 Swift 中运行 tf2.0 模型
- rust - 将静态字符串传递给 rust 中的 macro_rule
- excel - 取消选项 GetOpenFilename(Multiselect:= True)
- javascript - 如何从 firebase 获取数据
- laravel - 使用 Laravel Queue 在单个队列作业中处理多条消息
- python - 计时器从程序开始而不是起点开始
- javascript - JavaScript Vue 在数据库中插入多个名字作为多行。我应该为此使用每个循环吗?
- sequelize.js - 我正在使用 docker 和 sequelize 处理 nodejs 项目,我收到错误:无法读取未定义的 toString 属性
- java - 点击recyclerView new activity Error Attempt to invoke virtual method
- c++ - 为什么我的数组不能正确打印(冒泡排序)