julienmru / laravel-backpack-dropzone-field
为 Laravel Backpack 添加 Dropzone 支持
3.1.0
2023-08-25 09:41 UTC
Requires
- backpack/crud: 5.6.*
- spatie/laravel-medialibrary: ^10.0.0
This package is auto-updated.
Last update: 2024-09-25 12:13:17 UTC
README
为 Laravel Backpack 添加 Dropzone 支持。
要求
限制
目前,你只能在编辑条目时管理媒体。
安装
通过 Composer
composer require julienmru/laravel-backpack-dropzone-field
发布资产
php artisan julienmru:backpackdropzonefield:install
用法
EntityCrudController
为了简单起见,将 HandleAjaxMedia
特性添加到所有 EntityCrudController。
<?php ... use JulienMru\BackpackDropzoneField\Traits\HandleAjaxMedia; ... class EntityCrudController extends CrudController { ... use HandleAjaxMedia; ... }
路由
在你的路由文件中,你必须添加额外的路由。
<?php ... Route::crud('entity', 'EntityCrudController') Route::post('entity/{id}/media', 'EntityCrudController@uploadMedia'); Route::delete('entity/{id}/media/{mediaId}', 'EntityCrudController@deleteMedia'); Route::post('entity/{id}/media/reorder', 'EntityCrudController@reorderMedia'); ...
字段
[
...
'type' => 'dropzone_media',
'collection' => 'photos', // Media collection where files are added to
'thumb_collection' => 'thumbs', // Media collection where thumb are displayed from. If not set, 'collection' is used by default
'options' => [
... // Dropzone options
]
...
]
示例
<?php
...
$this->crud->operation(['update'], function() {
$this->crud->addField([
'label' => 'Photos',
'type' => 'dropzone_media',
'name' => 'photos',
'collection' => 'photos',
'thumb_collection' => 'thumbs',
'options' => [
'thumbnailHeight' => 120,
'thumbnailWidth' => 120,
'maxFilesize' => 10,
'addRemoveLinks' => true,
'createImageThumbnails' => true,
],
]);
});
...
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详情。
安全
如果你发现任何安全相关的问题,请发送电子邮件至 mail@julien.expert 而不是使用问题跟踪器。
致谢
- Adrian Sacchi
- [Julien Tessier][https://github.com/julienmru]
- 所有贡献者
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。