【发布时间】:2021-11-13 08:30:38
【问题描述】:
我想在用户实体中添加部门字段,所以我决定从这个包https://github.com/Laravel-Backpack/PermissionManager扩展默认的UserCrudController。
所以我用这个命令创建了一个自定义控制器php artisan make:controller Admin\UserController
在文件 \app\Providers\AppServiceProvider.php 我也添加了这个(按照说明)
public function register()
{
$this->app->bind(
\Backpack\PermissionManager\app\Http\Controllers\UserCrudController::class,
\App\Http\Controllers\Admin\UserController::class,
);
}
那么这里是\App\Http\Controllers\Admin\UserController的内容
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Backpack\PermissionManager\app\Http\Controllers\UserCrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
class UserController extends UserCrudController
{
public function setupCreateOperation()
{
parent::setupCreateOperation();
$fields['departments'] = [
'label' => 'Departments',
'type' => 'select2_multiple',
'name' => 'tags',
'entity' => 'tags',
'attribute' => 'name',
'model' => "App\Models\Tag",
'pivot' => true,
'wrapper' => ['class' => 'form-group col-6 col-md-4'],
'options' => (function ($query) {
return $query->where('type', 'Department')->get();
}),
];
foreach($fields as $key=>$field) {
CRUD::addField($field);
}
}
public function setupUpdateOperation()
{
parent::setupUpdateOperation();
$this->setupCreateOperation();
}
}
一切似乎都很好,我可以看到所有默认信息,例如:用户名、电子邮件、角色、权限和我的自定义部门字段。
问题是,当我尝试修改现有用户添加一些部门时,我得到了这个错误
The email has already been taken.
The password field is required.
不知何故,它被视为新用户注册。可能是什么问题?
【问题讨论】:
标签: permissions laravel-8 laravel-backpack