ComfyCoders TranquilTools
Docs /Laravel Vue FormBuilder
Repository
v1

Selection Fields

Select

A dropdown for selecting one or multiple options.

use TranquilTools\FormBuilder\Fields\Select;

Select::make('country')
    ->label('Country')
    ->options([
        'nl' => 'Netherlands',
        'de' => 'Germany',
        'fr' => 'France',
    ])
    ->required()

Populating from a model

Select::make('category_id')
    ->label('Category')
    ->options(
        Category::query()->pluck('name', 'id')->toArray()
    )
    ->rules('nullable', 'exists:categories,id')

Options from a collection of objects

When your options are a collection of objects (or arrays), specify which properties to use:

Select::make('user_id')
    ->label('Assigned to')
    ->options(User::query()->get())
    ->optionLabel('full_name')   // default: 'name'
    ->optionValue('id')          // default: 'id'

Multi-select

Select::make('tags')
    ->label('Tags')
    ->options(Tag::query()->pluck('name', 'id')->toArray())
    ->multiple()
    ->rules('array')

Checkbox

A single checkbox for boolean values. Defaults to submitting '1' when checked and '0' when unchecked.

use TranquilTools\FormBuilder\Fields\Checkbox;

Checkbox::make('active')
    ->label('Status')
    ->checkboxLabel('This account is active')
    ->checked()

Methods:

Method Description
->checkboxLabel(string) Label displayed next to the checkbox itself (separate from the field label)
->checked() Pre-checks the checkbox (sets default to true)
->value(mixed) Value submitted when checked (default: '1')
->falseValue(mixed) Value submitted when unchecked (default: '0')
Checkbox::make('newsletter')
    ->label('Email preferences')
    ->checkboxLabel('Subscribe to the newsletter')
    ->value(true)
    ->falseValue(false)

Checkboxes

Multiple checkboxes from an options list. Submits an array of selected values.

use TranquilTools\FormBuilder\Fields\Checkboxes;

Checkboxes::make('permissions')
    ->label('Permissions')
    ->options([
        'read' => 'Read',
        'write' => 'Write',
        'delete' => 'Delete',
    ])
    ->inline()
    ->rules('array')

Methods:

Method Description
->options(array|Collection) List of options
->optionLabel(string) Property to use as label for object options (default: 'name')
->optionValue(string) Property to use as value for object options (default: 'id')
->inline() Display checkboxes horizontally instead of stacked vertically
->buttons() Render options as toggle pill buttons instead of checkboxes

Radio / Radios

A group of radio buttons where only one can be selected.

use TranquilTools\FormBuilder\Fields\Radio;

Radio::make('plan')
    ->label('Plan')
    ->options([
        'starter' => 'Starter',
        'pro' => 'Pro',
        'enterprise' => 'Enterprise',
    ])
    ->rules('required')

Use ->inline() to display the options horizontally:

Radio::make('gender')
    ->label('Gender')
    ->options(['m' => 'Male', 'f' => 'Female', 'x' => 'Other'])
    ->inline()

Radios is an alias for Radio — both behave identically.


Toggle

A toggle switch for boolean values. Behaves like a Checkbox but renders as a sliding toggle.

use TranquilTools\FormBuilder\Fields\Toggle;

Toggle::make('notifications_enabled')
    ->label('Notifications')
    ->on('Enabled')

Methods:

Method Description
->on(string) Label displayed when toggle is on
->value(mixed) Value submitted when toggled on (default: '1')
->falseValue(mixed) Value submitted when toggled off (default: '0')
Toggle::make('is_public')
    ->label('Visibility')
    ->on('Public')
    ->value(true)
    ->falseValue(false)