Downloads
Stars
Version
Laravel form builder must be installed.
Via Composer
composer require ycs77/laravel-form-builder-fields
The checkable group type is similar to the choice type, but it is difrence.
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
Set config:
config/laravel-form-builder.php
<?php
return [
// Templates
// ...
'checkable_group' => 'laravel-form-builder::checkable_group',
'custom_fields' => [
'checkable_group' => '\Ycs77\LaravelFormBuilderFields\Fields\CheckableGroupType',
],
];
Use checkable group:
$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',
// ],
// ],
]);
If you set language_name
in the form but don't want to use it in the checkable group, you can set it to false
:
$this->add('field_name', 'checkable_group', [
...
'language_name' => false,
]);
Use bootstrap 4 class:
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',
],
],
],
];
Or horizontal style:
config/laravel-form-builder.php
<?php
return [
'defaults' => [
// ...
'checkable_group' => [
'label_class' => 'col-lg-2 col-form-label text-lg-right pt-0',
],
// Same...
],
];
This rich editor default use TinyMCE, you can replace it.
php artisan vendor:publish --tag=laravel-form-builder-rich-editor-type
Set config:
config/laravel-form-builder.php
<?php
return [
// Templates
// ...
'rich_editor' => 'laravel-form-builder::rich_editor',
'custom_fields' => [
'rich_editor' => '\Ycs77\LaravelFormBuilderFields\Fields\RichEditorType',
],
];
Use rich editor:
$this->add('content', 'rich_editor');
Download the TinyMCE Language Packages
Install HTMLPurifier for laravel package:
composer require mews/purifier
Use to your controller:
<?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);
}
}
Before you start, you must set
config('app.url')
andconfig('filesystems.default')
.
The image default will be uploaded to /upload
. Add upload routes to routes/web.php:
<?php
use Ycs77\LaravelFormBuilderFields\Facades\RichEditorUpload;
// Other routes...
RichEditorUpload::routes();
Open upload image on rich editor:
$this->add('content', 'rich_editor', [
'upload_image' => true,
]);
Language settings:
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"
}
If you want to modify the upload feature, you can extends Ycs77\LaravelFormBuilderFields\Http\Controllers\UploadController
to modified:
<?php
namespace App\Http\Controllers;
use Ycs77\LaravelFormBuilderFields\Http\Controllers\UploadController as BaseUploadController;
class UploadController extends BaseUploadController
{
// ...
}