# What is a Display type ?

## Definition

A display type gives possibility to display a field in different views of a module.

When creating a field of a Uccello module, it is possible to assign it a display type that will automatically **display** or **hide** it in the different views of the application.

Display types are defined in the [vendor/uccello/uccello/app/Fields/Displaytype](https://github.com/uccellolabs/uccello/tree/master/app/Fields/Displaytype) folder.

## Default Display types

Here is the list of the native display types available with Uccello:

| Name              | Displayed in List view | Displayed in Detail View | Displayed in Edit view for Creation | Displayed in Edit view for Edition |
| ----------------- | ---------------------- | ------------------------ | ----------------------------------- | ---------------------------------- |
| **create**        | false                  | false                    | true                                | false                              |
| **create-detail** | true                   | true                     | true                                | false                              |
| **create-edit**   | false                  | false                    | true                                | true                               |
| **detail**        | true                   | true                     | false                               | false                              |
| **edit-detail**   | true                   | true                     | false                               | true                               |
| **everywhere**    | true                   | true                     | true                                | true                               |
| **hidden**        | false                  | false                    | false                               | false                              |
| **list-only**     | true                   | false                    | false                               | false                              |

## Example of a migration file

```php
<?php
...

// Creation of the field
$field = Field::create([
    'name' => 'name',
    'uitype_id' => uitype('text')->id,
    'displaytype_id' => displaytype('everywhere')->id, // Use of the everywhere display type
    'sequence' => 0,
    'block_id' => $block->id,
    'module_id' => $module->id
]);
```

`'displaytype_id' => displaytype('everywhere')->id` : The field uses the `everywhere` display type.
