zekini / livewire-crud-generator
这有助于为应用程序搭建必要的 CRUD 和管理面板
Requires
- zekini/laravel-generics: ^2.0.4
This package is auto-updated.
Last update: 2024-09-30 01:54:26 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'
]
]
图片和文件
默认情况下,当表有名为 image
或 file
的列时,将自动生成并添加文件上传特性。但是,如果您的列名是图片并且不是这样命名的,您可以通过以下方式处理图片上传。在您的编辑和创建组件中 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文件并重新安装该软件包