在本主题中,我问了一个问题:Laravel 5.2 auth change 'users' table
但是现在我的问题已经改变。默认情况下,用户表具有id
。但是我想要customer_id
,所以我更改了所有内容,但没有用。它一直要求输入id
。
SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'id'(SQL:从
klanten
中选择*,其中id
= 1个限制1)]
在表klanten
中,我有一个customer_id
,但它一直要求输入id
。
我已更改的内容:
config / auth
'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
。
Controllers / 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']),
]);
}
app / User
protected $table = 'klanten';
protected $fillable = [
'voornaam', 'email', 'password',
];
我希望有人可以帮助我!
编辑用户模型并添加以下内容:
protected $primaryKey = 'customer_id';
您可以设置$primaryKey
模型中的User
字段以指定表的主键:
protected $primaryKey = 'customer_id';
对于仍然存在此问题的用户,如果您的主键不遵循autoIncrement,则应将以下代码添加到您的用户模型中:
public $incrementing=false;
并且如果您更改了主列名称,请添加此:
protected $primaryKey = 'vid'; //changed to vid