Skip to content

Form Components

Form

php
use Lartrix\Schema\Components\NaiveUI\{Form, FormItem};

Form::make()
    ->model('formData')
    ->rules([
        'name' => ['required' => true, 'message' => 'Please enter name'],
        'email' => ['required' => true, 'type' => 'email'],
    ])
    ->children([
        FormItem::make('Name', 'name')
            ->child(Input::make()),
        FormItem::make('Email', 'email')
            ->child(Input::make()),
    ]);

FormItem

php
FormItem::make('Label', 'field_name')
    ->child(Input::make());

// Required field
FormItem::make('Name', 'name')
    ->required()
    ->child(Input::make());

Checkbox

php
use Lartrix\Schema\Components\NaiveUI\Checkbox;

// Single checkbox
Checkbox::make()
    ->props(['label' => 'Agree to terms'])
    ->model('formData.agree');

// Checkbox group
Checkbox::make()
    ->props([
        'options' => [
            ['label' => 'Option 1', 'value' => 1],
            ['label' => 'Option 2', 'value' => 2],
        ],
    ])
    ->model('formData.hobbies');

Radio

php
use Lartrix\Schema\Components\NaiveUI\Radio;

Radio::make()
    ->props([
        'options' => [
            ['label' => 'Male', 'value' => 'male'],
            ['label' => 'Female', 'value' => 'female'],
        ],
    ])
    ->model('formData.gender');

DatePicker

php
use Lartrix\Schema\Components\NaiveUI\DatePicker;

// Date picker
DatePicker::make()
    ->props(['type' => 'date'])
    ->model('formData.date');

// DateTime picker
DatePicker::make()
    ->props(['type' => 'datetime'])
    ->model('formData.datetime');

// Date range
DatePicker::make()
    ->props(['type' => 'daterange'])
    ->model('formData.dateRange');

TimePicker

php
use Lartrix\Schema\Components\NaiveUI\TimePicker;

TimePicker::make()
    ->model('formData.time');

Upload

php
use Lartrix\Schema\Components\NaiveUI\Upload;

Upload::make()
    ->props([
        'action' => '/api/upload',
        'accept' => 'image/*',
        'multiple' => true,
    ]);

基于 MIT 许可发布