Creating & managing blueprints
Every resource will have it’s own blueprint. Just like with collections, you can manage the blueprints in the Control Panel.
Supported Fieldtypes
Runway supports pretty much ALL fieldtypes available in Statamic, including Bard. As long as you have the correct fieldtype and the correct column type, everything should “just work”! For simplicity, here’s a table matching Statamic’s Core fieldtypes with the correct column types:| Fieldtype | Column Type | Notes |
|---|---|---|
| Array | json | |
| Asset Container | string/json | |
| Assets | string/json | |
| Bard | string/json | If ‘Display HTML’ is true, then Bard will save as a string. |
| Button Group | string | |
| Checkboxes | json | |
| Code | string | |
| Collections | string/json | If ‘Max items’ is 1, column type should be string. Otherwise, json is what you want. |
| Color | string | |
| Date | string/range | Format is specified field configuration options. Ranges are should be stored as json. |
| Dictionary | string/json | If ‘Max items’ is 1, column type should be string. Otherwise, json is what you want. |
| Entries | string/json | If ‘Max items’ is 1, column type should be string. Otherwise, json is what you want. |
| Form | string/json | If ‘Max items’ is 1, column type should be string. Otherwise, json is what you want. |
| Grid | json | |
| Group | json | |
| Hidden | string | |
| HTML | - | UI only |
| Icon | string | |
| Integer | integer | |
| Link | json | |
| List | json | |
| Markdown | string | |
| Navs | string/json | |
| Radio | string | |
| Range | string | |
| Replicator | json | |
| Revealer | - | UI only |
| Section | - | UI only |
| Select | string/integer/json | |
| Sites | string/json | |
| Slug | string | |
| Spacer | - | UI only |
| Structures | json | |
| Table | json | |
| Tags | json | |
| Taxonomies | string/json | |
| Template | string | |
| Terms | string/json | |
| Text | string | |
| Textarea | string | |
| Time | string | |
| Toggle | boolean | |
| User Groups | string/json | When the resource is the User model, you don’t need to create a column for this fieldtype. |
| User Roles | string/json | When the resource is the User model, you don’t need to create a column for this fieldtype. |
| Users | string/integer/json | |
| Video | string | |
| Width | integer | |
| YAML | string |
Eloquent Relationships
Runway provides two fieldtypes to let you manage Eloquent Relationships within Statamic:- Belongs To
- Has Many
Nesting fields inside JSON columns
To avoid needing to create a migration for every new field you add to a blueprint, fields can be stored within JSON columns. To do this, you’ll first need to configure the JSON column under thenested_field_prefixes key in your config/runway.php config file.
Computed Values
Runway supports the concept of computed values. However, unlike in core, where they’re defined in yourAppServiceProvider, you define computed values in Runway by adding accessors to your Eloquent model.
For example: if you have first_name and last_name fields, you may want a computed value to combine them, so you might do something like this:
In order for augmentation to work properly, model accessors should be
public functions.