genealabs / nova-file-upload-field
Laravel Nova 字段。
0.6.0
2024-05-11 15:54 UTC
Requires
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- laravel/nova: ^4.0
- rodneyrehm/plist: ^2.0
- symfony/thanks: ^1.2
README
支持此包
这是一个MIT许可的开源项目,其持续开发得益于社区的赞助。如果您想支持该项目和我们的其他包,请考虑在Patreon上成为支持者或赞助商成为赞助者或赞助商。
我们感谢以下赞助商的慷慨,请花点时间了解一下
Impetus
我需要为几个项目添加文件上传字段,具有跨各种用例在现代浏览器中工作的灵活功能。Safari在拖放URL时存在问题(它会将它们转换为webloc
文件),不同的浏览器在行为上有不同的细微差别(Safari在以编程方式更新输入字段时触发更改,而Chrome在文件输入字段更改文件时不会)。
功能
以下功能使此表单字段与其他字段不同
- 拖放URL
- 拖放指向文件的链接
- 拖放网页文件(任何具有指向文件的src属性的网页元素)
- 拖放系统文件
- 图片预览
- 任何可上传的项目(文件、URL、链接)都作为Laravel请求对象中的
UploadedFile
对象在请求中可用
安装
composer require genealabs/nova-file-upload-field
使用
将其添加到您的Nova资源中的字段,例如
<?php namespace App\Nova; use GeneaLabs\NovaFileUploadField\FileUpload; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Text; use Laravel\Nova\Fields\Textarea; class Image extends Resource { public static $model = 'App\Image'; public static $title = 'title'; public static $search = [ "id", "description", "title", ]; public function fields(Request $request) { return [ ID::make() ->sortable(), Text::make("Title", "title") ->sortable() ->rules("required", "max:255"), FileUpload::make("Image", "path") ->thumbnail(function ($image) { return $image ? asset($image) : ''; }) ->disk("tenant") ->path("media") ->prunable(), Textarea::make("Description"), ]; } }
对质量的承诺
在包开发过程中,我尽可能地采用良好的设计和开发实践,以确保此包尽可能好。我的包开发清单包括
- ✅ 使用单元测试尽可能接近100%的代码覆盖率。
- ✅ 消除SensioLabs Insight和Scrutinizer识别的任何问题。
- ✅ 完全符合PSR1、PSR2和PSR4。
- ✅ 在README.md中包含全面的文档。
- ✅ 提供遵循http://keepachangelog.com中概述的格式的最新CHANGELOG.md。
- ✅ 在所有代码中没有任何PHPMD或PHPCS警告。
贡献
请遵守并尊重包含的代码行为准则的所有方面https://github.com/GeneaLabs/laravel-model-caching/blob/master/CODE_OF_CONDUCT.md。
报告问题
在报告问题时,请尽可能完整地填写包含的模板。不完整的问题可能会被忽略或关闭,如果包含的信息不足以采取行动。
提交Pull Requests
请审查贡献指南https://github.com/GeneaLabs/laravel-model-caching/blob/master/CONTRIBUTING.md。只有满足所有标准的PR才会被接受。
如果您喜欢开源软件,请为使用的仓库点一个 ⭐️。
我们已经将出色的 symfony/thanks
composer 包作为开发依赖项包含在内。通过在使用的包上点赞来告知您的操作系统包维护者您对他们的感激之情。只需安装此包后运行 composer thanks 即可。(不必担心,由于它是开发依赖项,它不会安装到您的实际环境中。)