簡體   English   中英

我在 Laravel 5.4 中為 Voyager 管理面板包創建管理員用戶時遇到問題

[英]I have issue in creating admin user for Voyager Admin panel package in Laravel 5.4

使用此命令安裝 voyage 包后:

php artisan voyager:install

我需要使用以下命令創建管理員用戶:

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

然后輸入名稱和密碼

問題是輸入用戶名和密碼后返回此錯誤

一般錯誤:1364 字段“employee_name”沒有默認值(SQL:插入到employeeemail )值(admin@admin.com))

我已經有一個數據庫,但具有不同的命名約定,例如:我稱之為員工的用戶表和名為 employee_name 的名稱字段

我的問題是,有沒有辦法將 voyager 中的預期字段與我數據庫中的實際字段進行映射,因為我無法更改它們?

提前致謝。

由於您更改了 User 模型的正常結構,並且可能會遇到與嘗試添加用戶的其他軟件包類似的問題,您可以在用戶模型中創建一個 boot() 方法,將 this->employee_name 設置為 this->name 和然后取消設置 this->name 以便當來自其他包的記錄嘗試使用 name 屬性時,您將其更正為 employee_name 屬性。

這是基於內存的我的頭腦,所以它可能涉及更多的“邏輯”,但我認為如果你查看引導方法,你會發現你可以做這種類型的事情。 我用它來自動填充基於動態值的列。

HTH

當您執行此命令時,Voyager 使用批量分配功能為您創建一個新用戶

因此,將$fillable添加到User模型中:

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

一般錯誤:1364 字段 'employee_name' 沒有默認值

您可以在數據庫中將默認值設置為 null 這解決了問題

使用Mutator將任何將數據添加到 'name' 列的嘗試引用到 'employee_name'。

對於您的情況:

應用\\用戶.php

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM