7

使用此命令安装 voyage 包后:

php artisan voyager:install

我需要使用以下命令创建管理员用户:

php artisan voyager:admin your@email.com --create

然后输入名称和密码

问题是输入用户名和密码后返回此错误

一般错误:1364 字段 'employee_name' 没有默认值(SQL:插入employee( email) 值 (admin@admin.com))

我已经有一个数据库,但有不同的命名约定,例如:我称之为员工的用户表和名为员工姓名的名称字段

我的问题是,有什么方法可以将 voyager 中的预期字段与我数据库中的实际字段进行映射,因为我无法更改它们?

提前致谢 。

4

4 回答 4

1

由于您更改了 User 模型的正常结构并且可能会遇到与尝试添加用户的其他包类似的问题,您可以在用户模型中创建一个 boot() 方法来将 this->employee_name 设置为 this->name 和然后取消设置 this->name 以便当来自其他包的记录尝试使用 name 属性时,您将其更正为 employee_name 属性。

基于记忆,这不是我的想法,所以它可能涉及更多的“逻辑”,但我认为如果你研究引导方法,你会发现你可以做这种事情。我用它来自动填充具有动态值的列。

HTH

于 2018-06-04T14:32:53.020 回答
0

当您执行此命令时,Voyager会使用批量分配功能为您创建一个新用户。

因此,添加$fillableUser模型中:

protected $fillable = ['name', 'email', 'password'];
于 2018-01-09T17:17:41.283 回答
0

使用Mutator将任何将数据添加到“name”列的尝试引用到“employee_name”。

对于您的情况:

应用\用户.php

public function setNameAttribute($value)
{
    $this->attributes['employee_name'] = $value;
}
于 2020-02-04T11:51:34.333 回答
0

一般错误:1364 字段 'employee_name' 没有默认值

您可以在数据库中将默认值设置为 null 这解决了问题

于 2019-08-26T20:37:10.173 回答