Laravel Nova - Trimmed Field Pattern

In a Laravel Nova based project I had a list of domains that sometimes grew to take up most of the row it was in. I discovered the following pattern to show a limited field on the index view and a full field on the edit view.

~

In a Laravel Nova based project I had a list of domains that sometimes grew to take up most of the row it was in. I discovered the following pattern to show a limited field on the index view and a full field on the edit view using a combination of onlyOnIndex() and hideFromIndex():

Text::make('Domains', 'additional_domains')
    ->onlyOnIndex()
    ->displayUsing(function ($value) {
        return str_limit($value, '100', '...');
    })
    ->withMeta(['extraAttributes' => [
        'readonly' => true
    ]]),

and then a second field that is hidden from the index using hideFromIndex():

Text::make('SSL Domains', 'ssl_additional_domains')
   ->hideFromIndex()
   ->withMeta(['extraAttributes' => [
       'readonly' => true
   ]]),

The fields are automatically populated by the system and are shown read-only to the user so this really helped to tidy up the UI. Hopefully this helps you out if you need to limit a field you’re displaying when using Laravel Nova.


~

Comments