| Surface | Component / API | Context |
|---|---|---|
| Read-only display | <PropertyValue> | Detail pages, activity logs |
| Inline edit | <PropertyValue action={...}> | Detail pages, tables |
| Form input | <PropertyCoreFormInput> | Create / edit forms |
| Table column | PropertyColumn::fromSchema() | Data tables |
| Table filter | PropertyFilter::fromSchema() | Data table filter bar |
Displaying a Value
<PropertyValue> renders the read-only display component for a property type. Pass the serialized property from the backend — it contains the type, value, formatted value, and label all in one object.
Inline Edit
Pass an action to<PropertyValue> to make a value inline-editable. The display wraps in a hover target — clicking it opens a popover with the property’s input component pre-filled.
paramName if your action expects a different key.
Image and file properties are always read-only — the inline edit affordance does not appear even if an action is provided.
<PropertyInlineEdit> to wrap arbitrary content:
Form Input
<PropertyCoreFormInput> resolves the correct form input for a property type and places it inside a CoreActionForm or CoreForm. Label, description, and validation state are derived from the property data automatically.
| Property type | Renders |
|---|---|
string | CoreFormInput |
number | CoreFormInput |
money | CoreFormMoneyInput |
boolean | CoreFormSwitch |
date | CoreFormInput |
enum | CoreFormSelect |
text | CoreFormTextarea |
object | CoreFormSearchCombobox |
Overriding Defaults
Override thename, label, or description derived from property metadata:
Passing Props to the Underlying Input
UseinputProps to forward props to the underlying CoreForm component. For string and number properties this supports prefix, suffix, iconLeft, iconRight, and transformValue:
Table Columns
PropertyColumn::fromSchema() creates a table column from a schema property. It automatically:
- Uses the property’s label
- Renders the cell with
<PropertyValue> - Marks direct-column and aggregate properties as sortable
- Maps
toFormatted()to the export value
app/Tables/OrderTable.php
Inline Edit in Tables
Add->editable() to enable inline editing directly in the table cell:
paramName if the action expects a different parameter name than the property name:
Standalone Columns
UsePropertyColumn::make() with a property instance when you don’t have a schema — for ad-hoc columns:
Table Filters
PropertyFilter::fromSchema() picks the right filter type based on the property’s semantic metadata:
| Property characteristic | Filter type |
|---|---|
Has options() | CoreSetFilter (checkbox list) |
Type boolean | Toggle filter |
Type date | Date range filter |
Type number / money | Numeric range filter |
| Everything else | Text filter |
app/Tables/OrderTable.php
Reference
PropertyColumn
| Method | Description |
|---|---|
make(Property $property): static | Standalone column from a property instance |
fromSchema(string $schemaClass, string $propertyName): static | Schema-bound column with auto-derived sortability and export |
editable(string $actionClass, ?Closure $params, ?string $paramName = null): static | Enable inline edit via action |
PropertyFilter
| Method | Description |
|---|---|
make(Property $property): mixed | Standalone filter from a property instance |
fromSchema(string $schemaClass, string $propertyName): mixed | Schema-bound filter; auto-selects filter type |
Next Steps
Properties
Define property types, constraints, computed values, and validation rules.
Data Tables
Use PropertyColumn and PropertyFilter to build schema-driven tables.