zekini/livewire-crud-generator

这有助于为应用程序搭建必要的 CRUD 和管理面板

v2.0 2022-05-03 07:33 UTC

README

zekini/livewire-crud-generator 包允许我们生成管理面板并为应用程序生成 CRUD

安装

composer require --dev zekini/livewire-crud-generator

使用

要搭建管理 UI 和身份验证 php artisan admin:scaffold

要运行创建的迁移 php artisan migrate

要生成超级管理员 php artisan admin:superuser 确保用户类使用了 HasRoles spatie 特性

要为默认包的表生成 CRUD php artisan admin:crud:package-tables

要在模型上设置关系映射,只需转到 zekini-admin 配置中的关系,为特定模型生成 CRUD。只需为该 CRUD 创建迁移文件并将其迁移到数据库

之后,只需运行带有表名的 admin:crud generate 命令

php artisan admin:crud:generate tablename 这将生成所有需要为该应用程序 CRUD 的视图、路由、工厂、控制器、权限、请求、单元测试、模型

关系

对于有外键的表,请确保更新 zekini 配置文件中的关系数组

例如,对于属于用户的外部键的帖子关系。其中记录标题是您希望从外部表中显示的记录

'posts'=> [
	[
	'name' => 'belongs_to',
	'table'=> 'users',
	'record_title'=> 'name'
	]
]

图片和文件

默认情况下,当表有名为 imagefile 的列时,将自动生成并添加文件上传特性。但是,如果您的列名是图片并且不是这样命名的,您可以通过以下方式处理图片上传。在您的编辑和创建组件中 use Livewire\WithFileUploads;

在创建模型之前添加此行

`$this->column_name = $this->getFile($this->column_name)`

对于编辑组件,只需检查该数组的第一元素是否是 TemporaryUploadedFile

`if($this->column_name[0] instanceof TemporaryUploadedFile) {
$this->column_name = $this->getFile($this->column_name);
$this->deleteFile($this->$modelClass->column_name); // delete old image
}`

在您的列表组件中,将列更改为回调以显示图片

`Column::callback(['column_name'], function ($column_name) {
	return view('zekini/livewire-crud-generator::datatable.image-display', ['file' => $column_name]);
})->unsortable()->excludeFromExport(),`

在您的 form.blade.php 的模型中,只需将输入类型更改为文件并在其上添加 multiple

对于您的单元测试,将数组中的列值替换为伪造的文件,因为文件被视为模型的多个上传 [\Illuminate\Http\UploadedFile::fake()->image('file.jpg')],并在您的工厂中将图像列值替换为数组 '["file.jpeg"]'

Laravel Jetstream

通过整合 Laravel Jetstream,请确保运行以下命令 npm install npm run dev

着陆页

为了强制删除当前着陆页,请运行 php artisan vendor:publish --tags=views --force

选项

您可以使用此附加参数与 CRUD 生成器命令一起使用以自定义生成的组件 php artisan admin:crud:generate --only=component-datatable 上述将只生成表格组件

php artisan admin:crud:generate --exclude=model 上述将生成除模型之外的所有组件

php artisan admin:crud:generate --readonly 上述将生成所有具有只读数据表的组件

以下是一个完整的键列表

        'model' => 'Model Component',
        'route' => 'Route and Sidebar',
        'form' => 'Generate Form',
        'view-index' => 'Livewire Index view',
        'component-datatable' => 'Livewire datatable component',
        'component-index' => 'Livewire index component',
        'permission' => 'Generate Permissions',
        'test-datatable' => 'Datatable Test',
        'test-index' => 'Index Component Test',
        'factory' => 'Factory class'

注意

您需要添加自定义中间件,以便根据给定用户的角色将用户重定向到管理或用户

依赖问题

如果在安装软件包时遇到任何依赖问题,请删除composer.lock文件并重新安装该软件包