Fields
Field cơ bản
Field Text, Password, Number, Email, Tel, Url, Textarea, hidden
Sử dụng phương thức động
$form = new Form();
$form
->text('username', ['label' => 'Tên đăng nhập'])
->password('password', ['label' => 'Mật khẩu'])
->email('email', ['label' => 'email của bạn'])
->tel('phone', ['label' => 'Số điện thoại'])
->number('age', ['label' => 'Số tuổi', 'min' => 18])
->textarea('note', ['label' => 'Ghi chú'])
->hidden('token', [], 'y99dkdQLu9856zh');
Sử dụng phương thức add
$form = new Form();
$form
->add('username', 'text', ['label' => 'Tên đăng nhập'])
->add('password', 'password', ['label' => 'Mật khẩu'])
->add('email', 'email', ['label' => 'email của bạn'])
->add('phone', 'tel', ['label' => 'Số điện thoại'])
->add('age', 'number', ['label' => 'Số tuổi', 'min' => 18])
->add('note', 'textarea', ['label' => 'Ghi chú'])
->add('token', 'hidden', [], 'y99dkdQLu9856zh');
Field Checkbox, Radio, Select
$options = [
'value1' => 'Label 1',
'value2' => 'Label 2',
'value3' => 'Label 3'
];
$form = new Form();
//Sử dụng phương thức `động`
$form
->checkbox('field_name_checkbox', ['label' => 'Label Checkbox'])->options($options)
->radio('field_name_radio', ['label' => 'Label Radio'])->options($options)
->select('field_name_select', ['label' => 'Label Select'])->options($options);
//Sử dụng phương thức `add`
$form
->add('field_name_checkbox', 'checkbox', ['label' => 'Label Checkbox'])->options($options)
->add('field_name_radio', 'radio', ['label' => 'Label Radio'])->options($options)
->add('field_name_select', 'select', ['label' => 'Label Select'])->options($options);
Field đặt biệt
Wysiwyg Editor
Input Wysiwyg sử dụng thư viện tinymce nên bạn cần nhúng vào theme thư viện này nếu muốn sử dụng field Wysiwyg ở theme
$footer->add('tinymce', 'node_modules/tinymce/tinymce.min.js');
Input Wysiwyg với đầy đủ các thuộc tính plugin
$form = new Form();
//Sử dụng phương thức `động`
$form->wysiwyg('field_name', ['label' => 'Label Field']);
Input Wysiwyg với nhỏ gọn hạn chế thuộc tinh plugin
//Sử dụng phương thức `động`
$form->wysiwygShort('field_name', ['label' => 'Label Field']);
//Sử dụng phương thức `add`
$form->add('field_name', 'wysiwyg-short', ['label' => 'Label Field']);
Radio Icon, Checkbox Icon
$options = [
'left' => [
'label' => 'Label 1',
'icon' => '<i class="fa-light fa-align-left"></i>'
],
'center' => [
'label' => 'Label 2',
'icon' => '<i class="fa-light fa-align-justify"></i>'
],
'right' => [
'label' => 'Label 3',
'icon' => '<i class="fa-light fa-align-right"></i>'
],
];
$form = new Form();
//Sử dụng phương thức `động`
$form
->checkboxIcon('field_name_checkbox', ['label' => 'Label Checkbox'])->options($options)
->radioIcon('field_name_radio', ['label' => 'Label Radio'])->options($options);
//Sử dụng phương thức `add`
$form
->add('field_name_checkbox', 'checkbox-icon', ['label' => 'Label Checkbox'])->options($options)
->add('field_name_radio', 'radio-icon', ['label' => 'Label Radio'])->options($options);
Switch (On/Off)
Mặt định input Switch sẽ trả về giá trị 1 nếu bật và 0 nếu tắt
//Sử dụng phương thức `động`
$form
->switch('field_name_switch', ['label' => 'Label switch']);
//Sử dụng phương thức `add`
$form
->add('field_name_switch', 'switch', ['label' => 'Label switch']);
Nếu bạn muốn truyền vào 2 giá trị khác có thể sử dụng biến options, biến options phải có 2 phần tử và key phải là 0 và 1,
$form->switch('field_name_switch', ['label' => 'Label switch'])->options([
0 => 'off', //Giá trị trả về khi tắt
1 => 'on', //Giá trị trả về khi bật
]);
Mặc đ ịnh label của 2 lựa chọn field switch là bật và tắt nếu muốn thay đổi bạn có thể sử dụng attribute label-true và label-false để thay đổi
$form->switch('field_name_switch', ['label' => 'Label switch', 'label-true' => 'Ok', 'label-false' => 'No']);
Color
Input color sử dụng thư viện melloware/coloris nên bạn cần nhúng vào theme thư viện này nếu muốn sử dụng field color ở theme
$header->add('color', 'node_modules/@melloware/coloris/dist/coloris.min.css');
$footer->add('color', 'node_modules/@melloware/coloris/dist/umd/coloris.min.js');
//Sử dụng phương thức `động`
$form->color('field_name_color', ['label' => 'Label color']);
//Sử dụng phương thức `add`
$form->add('field_name_color', 'color', ['label' => 'Label color']);
Image, File, Video
Select2
Input color sử dụng thư viện select2 nên bạn cần nhúng vào theme thư viện này nếu muốn sử dụng field color ở theme
$header->add('select2', 'node_modules/select2/dist/css/select2.min.css');
$footer->add('select2', 'node_modules/select2/dist/js/select2.min.js');
$options = [
'value1' => 'Label 1',
'value2' => 'Label 2',
'value3' => 'Label 3'
];
//Sử dụng phương thức `động`
$form->select2('field_name_select2', ['label' => 'Label Select 2'])->options($options);
//Sử dụng phương thức `add`
$form->add('field_name_select2', 'select2', ['label' => 'Label Select 2'])->options($options);
Nếu bạn muốn chọn nhiều option thì thêm multiple bằng true vào attributes hoặc gọi method
$form->select2('field_name_select2', ['label' => 'Label Select 2'])->options($options)->multiple(true);
Date, Time Và Datetime
Field Date, Time Và Datetime sử dụng thư viện air-datepicker nên bạn cần nhúng vào theme thư viện này nếu muốn sử dụng field Date, Time Và Datetime ở theme
$header->add('air-datepicker', 'node_modules/air-datepicker/air-datepicker.css');
$footer->add('air-datepicker', 'node_modules/air-datepicker/air-datepicker.js');
Field Date trả về giá trị có format là dd/mm/yyyy
Field Time trả về giá trị có format là HH:mm
Field Datetime trả về giá trị có format là dd/mm/yyyy HH:mm
//Sử dụng phương thức `động`
$form->date('field_name_date', ['label' => 'Label Date']);
$form->time('field_name_time', ['label' => 'Label Time']);
$form->datetime('field_name_datetime', ['label' => 'Label Datetime']);
//Sử dụng phương thức `add`
$form->add('field_name_date', 'date', ['label' => 'Label Date']);
$form->add('field_name_time', 'time', ['label' => 'Label Time']);
$form->add('field_name_datetime', 'datetime', ['label' => 'Label Datetime']);
Date range
Field Date range sử dụng thư viện daterangepicker nên bạn cần nhúng vào theme thư viện này nếu muốn sử dụng field Date range ở theme
$header->add('dateRangePicker', 'node_modules/daterangepicker/daterangepicker.css');
$footer->add('dateRangePicker', 'node_modules/daterangepicker/moment.min.js');
$footer->add('dateRangePicker', 'node_modules/daterangepicker/daterangepicker.js');
Field DateRange trả về giá trị có format là dd/mm/yyyy - dd/mm/yyyy
//Sử dụng phương thức `động`
$form->dateRange('field_name_date_range', ['label' => 'Label Date Range']);
//Sử dụng phương thức `add`
$form->add('field_name_date_range', 'daterange', ['label' => 'Label Date Range']);
Range
Field Range nhận vào 2 options là min và max mặc định min sẽ là 0 và max sẽ là 100
//Sử dụng phương thức `động`
$form->range('field_name_range', ['label' => 'Label Range'])->min(10)->max(200);
//Sử dụng phương thức `add`
$form->add('field_name_range', 'range', ['label' => 'Label Range'])->min(10)->max(200);
Repeater
Field Repeater tạo một giao diện để thêm và xóa một nhóm input có thể lặp lại.
//Sử dụng phương thức `động`
$form->repeater('items', ['label' => 'Label Range'])->fields(function ($repeater) {
$repeater->text('title', ['label' => __('Tiêu đề'), 'start' => 6]);
$repeater->image('image', ['label' => __('Images'), 'start' => 6]);
$repeater->textarea('des', ['label' => __('Mô tả'), 'start' => 12]);
});
//Sử dụng phương thức `add`
$form->add('items', 'repeater', ['label' => 'Label Test'])->fields(function ($repeater) {
$repeater->text('title', ['label' => __('Tiêu đề'), 'start' => 6]);
$repeater->image('image', ['label' => __('Images'), 'start' => 6]);
$repeater->textarea('des', ['label' => __('Mô tả'), 'start' => 12]);
});
Font Icon
Field font icon tạo một giao diện để bạn có thể chọn icon nhanh từ font icon cms hỗ trợ
//Sử dụng phương thức `động`
$form->fontIcon('field_name_range', ['label' => 'Label icon']);
//Sử dụng phương thức `add`
$form->add('field_name_range', 'font-icon', ['label' => 'Label icon']);
Price
Field price tạo một input nhập số tự động chèn thêm "," cho phần ngàn
//Sử dụng phương thức `động`
$form->price('field_name_range', ['label' => 'Label price']);
//Sử dụng phương thức `add`
$form->add('field_name_range', 'price', ['label' => 'Label price']);
Field lấy dữ liệu
Gallery
Lấy danh sách thư viện (Admin > Thư viện) dưới dạng select2
//Sử dụng phương thức `động`
$form->gallery('field_name_gallery', ['label' => 'Label Gallery']);
//Sử dụng phương thức `add`
$form->add('field_name_gallery', 'gallery', ['label' => 'Label Gallery']);
Gallery Item
Tạo thư viện ảnh (chọn được danh sách ảnh thành thư viện)
//Sử dụng phương thức `động`
$form->galleryItem('field_name_gallery', ['label' => 'Label list Image']);
Menu
Lấy danh sách menu (Admin > giao diện > menu) dưới dạng select2
//Sử dụng phương thức `động`
$form->menu('field_name_menu', ['label' => 'Label Menu']);
//Sử dụng phương thức `add`
$form->add('field_name_menu', 'menu', ['label' => 'Label Menu']);
Page
Lấy danh sách Trang Nội Dung (Admin > Trang nội dung) dưới dạng select2
//Sử dụng phương thức `động`
$form->page('field_name_page', ['label' => 'Label Page']);
//Sử dụng phương thức `add`
$form->add('field_name_page', 'page', ['label' => 'Label Page']);
Post
Lấy danh sách Bài viết (Admin > Bài viết) dưới dạng select2
Field post nhận options post_type để xác định post_type của bài viết, nếu không truyền mặc định post_type là post
//Sử dụng phương thức `động`
$form->post('field_name_post', ['label' => 'Label Post', 'post_type' => 'post']);
//Sử dụng phương thức `add`
$form->add('field_name_post', 'post', ['label' => 'Label Post', 'post_type' => 'post']);
postCategory
Lấy danh sách danh mục bài viết (Admin > Bài viết > Danh mục) dưới dạng select2
Field postCategory nhận options cate_type để xác định cate_type của danh mục bài viết, nếu không truyền mặc định cate_type là post_categories
//Sử dụng phương thức `động`
$form->postCategory('field_name_category', ['label' => 'Label Category', 'cate_type' => 'post_categories']);
//Sử dụng phương thức `add`
$form->add('field_name_category', 'postCategory', ['label' => 'Label Category', 'cate_type' => 'post_categories']);
Field giao diện
none
none cho phép chèn html vào form
$form->none(Admin::button('red', ['text' => 'Xóa']));
inputResponsive
inputResponsive Tạo cho bạn field text có thể điền 3 kích thước (Desktop, Tablet, Mobile)
//Sử dụng phương thức `động`
$form->inputResponsive('field_name', ['label' => 'Label Field']);
//Sử dụng phương thức `add`
$form->add('field_name', 'input-responsive', ['label' => 'Label Field']);
Khi submit bạn sẽ nhận được dữ liệu dạng
[
'field_name' => [
'desktop' => '',
'tablet' => '',
'mobile' => '',
]
]
inputDimension
inputDimension Tạo cho bạn bốn field với type là number tương ứng với Trên, Phải, Dưới, Trái
//Sử dụng phương thức `động`
$form->inputDimension('field_name', ['label' => 'Label Field']);
//Sử dụng phương thức `add`
$form->add('field_name', 'input-dimension', ['label' => 'Label Field']);
Khi submit bạn sẽ nhận được dữ liệu dạng
[
'field_name' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
]
]
inputDimensionResponsive
inputDimensionResponsive tạo cho bạn field giống inputDimension nhưng kèm theo điều kiện Responsive (Desktop, Tablet, Mobile)
//Sử dụng phương thức `động`
$form->inputDimensionResponsive('field_name', ['label' => 'Label Field']);
//Sử dụng phương thức `add`
$form->add('field_name', 'input-dimension-responsive', ['label' => 'Label Field']);
Khi submit bạn sẽ nhận được dữ liệu dạng
[
'field_name' => [
'desktop' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'tablet' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'mobile' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
]
]