Fields

Fields represent the fields that will be created in a database, but also the fields included in model factories, requests, and tests.

Key

A key should be the snake cased singular version of the field name.

label

default: name

Defaults to the key name in snake case. As the field name in the database, and where ever the field is referred to programatically.

name: name

label

default: Name

Defaults to a title case version of the key. This is used for front end usage of the field name, such as on forms.

label: Name

type

default: [name: string, max: 255])

The type can be set as either a string with the name of the type, or as an array with the name of the field type, plus a [supported field characteristics](Supported Field Characteristics). All [field types defined in Laravel](https://laravel.com/docs/8.x/migrations#available-column-types) are useable, except for Increments

mass_assignable

default: true

By default all fields are set to mass assignable, meaning on the model they are included in the mass assignable array. This default can be over written the an config file.

index

default: false

Creates an index for the column.

nullable

default: false

Allows the database field to be nullable and adds required rules to requests, forms, and unit tests.

unique

default: false

Adds a unique database rule, and checks for uniqueness in the request rules.

visible

default: true

Includes the fields on front end of system.

in_request

default: true

Includes validation rules on requests

use

default: null

Defines the field use, (eg. phone, email) which allows for a variety of magic settings in the system, specifically around factory fakers and input types. Currently the only uses supported are uses related to string fields. Some keys will also result in an automatically set name, for example, first_name, last_name, city, state, *phone*, *email*, *image*

Key

Result

firstName

First name faker

lastName

Last name faker

company

Company name faker

phone

Phone faker

city

City name faker

state

US state name faker and drop down on forms

country

Country name faker and drop down on forms

email

Safe email faker and validation on forms and requests

image

A placeholder image url

faker

default: based on type & use

Explicitly set a faker use the definitions provided in [FakerPHP](https://fakerphp.github.io/formatters/). If not set, Architect will infer based on the type or use of the field. Most field types supported by Laravel generate a faker, some of the notable exceptions however are geometry fields or other fields which don’t have an obvious faker.