我在为Laravel 5.4中的Voyager Admin面板包创建管理员用户时遇到了问题

时间:2018-01-09 16:57:30

标签: php laravel laravel-5.4 voyager

使用此命令安装航行包后:

php artisan voyager:install

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

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

然后输入名称和密码

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

  

常规错误:1364字段' employee_name'没有默认值   (SQL:插入employeeemail)值(admin@admin.com))

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

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

提前致谢。

4 个答案:

答案 0 :(得分:1)

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

这是基于记忆的头脑,所以它可能涉及更多的逻辑'但我想如果你看一下启动方法,你会发现你可以做这种事情。我用它来自动填充具有动态值的列。

HTH

答案 1 :(得分:0)

当您执行此命令时,Voyager creates a new user会使用质量指定功能。

所以,将$fillable添加到User模型:

protected $fillable = ['name', 'email', 'password'];

答案 2 :(得分:0)

  

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

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

答案 3 :(得分:0)

使用Mutator将尝试将数据添加到“名称”列的任何尝试都引用到“雇员姓名”。

针对您的情况:

App \ User.php

17:24