【问题标题】:I have issue in creating admin user for Voyager Admin panel package in Laravel 5.4我在 Laravel 5.4 中为 Voyager 管理面板包创建管理员用户时遇到问题
【发布时间】:2018-06-18 18:42:41
【问题描述】:

使用此命令安装 voyage 包后:

php artisan voyager:install

我需要用这个命令创建管理员用户:

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

然后输入名称和密码

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

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

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

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

提前致谢。

【问题讨论】:

    标签: php laravel laravel-5.4 voyager


    【解决方案1】:

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

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

    HTH

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 首先感谢您的回答 .. 但我认为存在误解 .. voyager 包正在创建新用户,它需要一个名为 name 的列 .. 在我的表中不存在 .. 名称在我的表中名为employee_name 的列.. 因此它不会插入带有employee_name 列的行.. 并且employee_name 列没有默认值,因此会引发该错误
      • 这是我在模型中所做的,正如你所建议的那样 protected $fillable = [ 'email', 'password','employee_name' ];
      • @AliReda 为什么不将employee_name 重命名为name
      • @AliReda 在这种情况下,您需要使用播种机或其他工具手动添加数据,因为name 在命令中是硬编码的。
      • 我认为这是一个合乎逻辑且可能的解决方案..感谢您的时间
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        对于您的情况:

        应用\用户.php

        public function setNameAttribute($value)
        {
            $this->attributes['employee_name'] = $value;
        }
        

        【讨论】:

          猜你喜欢
          • 2021-06-26
          • 1970-01-01
          • 1970-01-01
          • 2021-04-23
          • 2020-11-27
          • 2017-12-13
          • 2020-09-27
          • 2021-03-02
          • 2019-11-14
          相关资源
          最近更新 更多