Laravel 5.2 auth 将 'id' 更改为 'customer_id'
Posted
技术标签:
【中文标题】Laravel 5.2 auth 将 \'id\' 更改为 \'customer_id\'【英文标题】:Laravel 5.2 auth change 'id' to 'customer_id'Laravel 5.2 auth 将 'id' 更改为 'customer_id' 【发布时间】:2016-04-12 22:48:23 【问题描述】:在这个话题中我问了一个问题:Laravel 5.2 auth change 'users' table
但是现在我的问题已经改变了。默认情况下,用户表有一个id
。但我想要一个customer_id
,所以我改变了一切,但它不起作用。它一直要求id
。
SQLSTATE[42S22]:找不到列:1054 'where 子句'中的未知列 'id'(SQL:select * from
klanten
whereid
= 1 limit 1)
在klanten
表中,我有一个customer_id
,但它一直要求id
。
我改变的地方:
配置/身份验证
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
'table' => 'klanten',
],
创建了 klanten
迁移
public function up()
Schema::create('klanten', function (Blueprint $table)
$table->increments('klant_id');
$table->string('voornaam');
$table->string('email')->unique();
$table->string('password', 64);
$table->rememberToken();
$table->boolean('status');
$table->timestamps();
);
如果我删除时间戳,它也会一直要求 created_at
和 updated_at
。
控制器/Auth/AuthController
protected function validator(array $data)
return Validator::make($data, [
'voornaam' => 'required|max:255',
'email' => 'required|email|max:255|unique:klanten',
'password' => 'required|confirmed|min:6',
]);
protected function create(array $data)
return User::create([
'voornaam' => $data['voornaam'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
应用/用户
protected $table = 'klanten';
protected $fillable = [
'voornaam', 'email', 'password',
];
希望有人能帮帮我!
【问题讨论】:
【参考方案1】:编辑您的用户模型并添加:
protected $primaryKey = 'customer_id';
【讨论】:
【参考方案2】:您可以设置User
模型中的$primaryKey
字段来指定表的主键:
protected $primaryKey = 'customer_id';
【讨论】:
以上是关于Laravel 5.2 auth 将 'id' 更改为 'customer_id'的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 Auth 登录有效,Auth::check 失败
异常页面(布局)上的 Laravel 5.2 Auth::check()