← All package workshops
Forms / INTERACTIVE WORKSHOP

Build a schema, validate and exchange data

Fields v1.0.1

Edit real field definitions, submit nested values, redisplay errors and inspect CSV/PDF output from installed package adapters.

01 / CONFIGURE

Choose a scenario. Change the inputs or build a sequence of commands.

02 / RUN

Execute the installed package against a new fictional example.

03 / INSPECT

Follow the result, actual calls, generated output and integration code.

THE WORKBENCH

Make it your example.

Your server-side changes are temporary. External-service examples use local response fixtures. Start with sample data.

Execution result

Waiting for your first run
No execution yetEdit inputs ↑

Start with a preset, or change the input and run it.

The behavior is the example.

Your result will show the values, decisions and generated output from the actual package.

EXPLORE THE PACKAGE

What you can exercise here.

INTERACTIVE

Field definitions and validation

All twenty field types; bounded options, defaults, scale, editability, sensitivity, consent and matching fields.

INTERACTIVE

Schema and export operations

Iteration, count, only/group/map, normalized nested output, error redisplay, CSV/PDF and real English/Spanish/French host translation overrides.

HOST INTEGRATION

Workshop resource budgets

Up to 12 fields, 20 choice options, 8 JSON nesting levels, 20 CSV rows, and PDF reports within 6000 display characters / 40 line breaks.

INTERACTIVE

Uploads

Use fixture:text or fixture:pdf in values. The server creates a tiny temporary UploadedFile and validates it; no upload is stored.

HOST INTEGRATION

Host integration

Production file storage/ownership and a Filament 5 installation remain host responsibilities. This workshop does not install Filament.

UNDERSTAND THE BEHAVIOR

Build one schema, then test every boundary it drives.

Add typed fields, configure bounded options and defaults, then submit the actual packaged form. Inspect normalization, validation redisplay, translated prompts, CSV exchange and optional PDF output.

01

The schema builder constructs actual Fields objects

Rows support all meaningful package types, including nested paths, exact decimals, choices, JSON, file, hidden and display. Type-specific settings appear when relevant. Omitted options use package defaults; a stored incompatible default remains visible until you reset it. This host admits curated rules, not arbitrary PHP, database lookups or Laravel rule strings.

02

Presentation and submission share the schema

The preview is the real package form. Missing optional values, blank values and false checkboxes remain distinguishable; read-only, disabled and display fields do not become editable validated output. Password and sensitive values are redacted from returned state and artifacts. Selection, group filtering and display-only mapping call real Schema methods.

03

Files are truthful bounded fixtures

The file selector offers tiny named text and PDF fixtures. The server creates real temporary UploadedFile objects and applies MIME and size validation. No local path, remote file or visitor upload is accepted here, and the package does not store a file just because it validates.

04

Exports and localization have explicit boundaries

CSV uses editable exportable fields and omits sensitive/read-only/file values. Formula protection can prevent a lossless reimport. PDF uses the installed optional DocSign adapter with a host display-size budget. Spanish/French prompts and errors come from host translations through Laravel; your field labels and option text remain your own.

GO FURTHER

Try the boundary cases.

  1. Build a schema and submit its form

    Clear the existing schema rows, then add a required email field and a nested text field named contact.name. Set values in Full example input, run, then edit the rendered form and submit it. Expected: valid data normalizes under contact; an invalid email redisplays the submitted value with an associated package validation message. Schema-configuration errors identify the affected builder row.

  2. Test defaults, precision and false

    Start with the default fields: set budget to "1.123" and decision to an option key absent from its choices. Expected: scale and membership errors name those fields. Then run Defaults and read-only fields and JSON, multiselect and false: inspect defaults, omitted noneditable fields and false remaining false. Quote integers beyond JavaScript’s safe range in JSON, such as "9007199254740993".

  3. Validate a real fixture file

    Run Validate a real fixture upload and choose its text fixture instead. Expected: the actual PDF MIME rule rejects the text file. Restore PDF: the result reports filename, MIME and byte size with stored=false. Selecting a fixture never chooses a server path or writes a permanent attachment.

  4. Compare translated errors and reports

    Run Spanish prompts and validation, then French prompts and report. Expected: actual package prompts/errors and default report title change language. Edit a label yourself to see that it is schema content rather than automatically translated text. Download the generated PDF and inspect its escaped display data.

  5. Inspect CSV and schema projections

    Run CSV import and round trip, edit its bounded rows and download the actual export. Expected: each row is validated and reimport status is explicit. Run Nested secrets stay private to compare a nested sensitive field: its value is absent from state and artifacts. Try group_filter, selection or display_only and inspect the executed Schema calls and retained field count.

COMPOSE THE RESPONSIBILITIES

Useful alone.
Better when the boundaries fit.

Fields works independently in Laravel and Blade. Its optional Filament, CSV, PDF and DocSign adapters are documented in the handbook. The connected Workflow lab uses FieldsActionValidator for action data; it still supplies application authorization and workflow policy separately.

Workflow Workflow Tools DocSign Read every API and recipe