ycs77 / laravel-form-builder-fields
这个Laravel表单构建器更多字段。
v0.4.1
2020-10-26 11:44 UTC
Requires
- php: >=7.1
- kris/laravel-form-builder: ^1.16
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ~3.0
- phpunit/phpunit: >=7.0
README
安装
必须安装Laravel表单构建器。
通过Composer
composer require ycs77/laravel-form-builder-fields
类型
- 可复选组类型
- 富文本编辑器类型
可复选组类型
可复选组类型与选择类型相似,但有所不同。
php artisan vendor:publish --tag=laravel-form-builder-checkable-group-type
# or horizontal
php artisan vendor:publish --tag=laravel-form-builder-checkable-group-type-horizontal
设置配置
config/laravel-form-builder.php
<?php return [ // Templates // ... 'checkable_group' => 'laravel-form-builder::checkable_group', 'custom_fields' => [ 'checkable_group' => '\Ycs77\LaravelFormBuilderFields\Fields\CheckableGroupType', ], ];
使用可复选组
$this->add('field_name', 'checkable_group', [ 'choices' => [ 'en' => 'English', 'fr' => 'French', ], 'is_checkbox' => true, // False is radio 'selected' => ['en'], 'language_name' => 'test-lang-name', // 'choice_options' => [ // 'wrapper' => [ // 'class' => 'form-control', // ], // ], ]);
如果您在表单中设置了 language_name
但不想在可复选组中使用它,可以将其设置为 false
$this->add('field_name', 'checkable_group', [ ... 'language_name' => false, ]);
样式类配置
使用bootstrap 4类
config/laravel-form-builder.php
<?php return [ 'defaults' => [ // ... 'checkable_group' => [ // 'wrapper_class' => 'form-group', ], 'checkbox' => [ // ... 'choice_options' => [ 'wrapper_class' => 'custom-control custom-checkbox', 'label_class' => 'custom-control-label', 'field_class' => 'custom-control-input', ], ], 'radio' => [ // ... 'choice_options' => [ 'wrapper_class' => 'custom-control custom-radio', 'label_class' => 'custom-control-label', 'field_class' => 'custom-control-input', ], ], ], ];
或水平样式
config/laravel-form-builder.php
<?php return [ 'defaults' => [ // ... 'checkable_group' => [ 'label_class' => 'col-lg-2 col-form-label text-lg-right pt-0', ], // Same... ], ];
富文本编辑器类型
这个富文本编辑器默认使用 TinyMCE,您可以替换它。
php artisan vendor:publish --tag=laravel-form-builder-rich-editor-type
设置配置
config/laravel-form-builder.php
<?php return [ // Templates // ... 'rich_editor' => 'laravel-form-builder::rich_editor', 'custom_fields' => [ 'rich_editor' => '\Ycs77\LaravelFormBuilderFields\Fields\RichEditorType', ], ];
使用富文本编辑器
$this->add('content', 'rich_editor');
净化富文本编辑器内容
composer require mews/purifier
用于您的控制器
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Mews\Purifier\Facades\Purifier; class PostController extends Controller { public function store(Request $request) { $content = Purifier::clean($request->content); } }
上传图片
开始之前,您必须设置
config('app.url')
和config('filesystems.default')
。
图片默认将上传到 /upload
。将上传路由添加到 routes/web.php
<?php use Ycs77\LaravelFormBuilderFields\Facades\RichEditorUpload; // Other routes... RichEditorUpload::routes();
在富文本编辑器中打开上传图片
$this->add('content', 'rich_editor', [ 'upload_image' => true, ]);
语言设置
resources/lang/{Language}/validation.php
'custom' => [ 'upload_file' => [ 'required' => 'Upload file does not exist', ], ], 'attributes' => [ 'upload_file' => 'Upload file', ],
resources/lang/{Language}.json
{ "Upload error": "Upload error" }
如果您想修改上传功能,可以扩展 Ycs77\LaravelFormBuilderFields\Http\Controllers\UploadController
以进行修改
<?php namespace App\Http\Controllers; use Ycs77\LaravelFormBuilderFields\Http\Controllers\UploadController as BaseUploadController; class UploadController extends BaseUploadController { // ... }