Move, rename and remove fields

This is the official documentation of the forestadmin/laravel-forestadmin v2+ and forestadmin/symfony-forestadmin PHP agents.

When building your admin panel, you will probably want to hide as much complexity from your users as you can.

This includes:

  • Hiding technical and confidential fields

  • Using naming conventions that the final user understands.

Moving fields

You can import fields from single record relationships into your collections.

The imported fields will behave as if they were on that collection.

use ForestAdmin\AgentPHP\DatasourceCustomizer\CollectionCustomizer;

// Assuming the following structure:
// User    { id, firstName, lastName, addressId }
// Address { id, streetName, streetNumber, city, countryId }
// Country { id, name }

$forestAgent->customizeCollection(
    'User',
    function (CollectionCustomizer $builder) {
        $builder->importField('city', ['path' => 'address:city', 'readonly' => true])
            ->importField('country', ['path' => 'address:country:name', 'readonly' => true]);
    }
);

Note that when using readonly: false, the referenced record fields can be edited.

Renaming and removing fields and relations

Renaming and removing fields or relations can be done simply by calling the renameField and removeFields methods.

use ForestAdmin\AgentPHP\DatasourceCustomizer\CollectionCustomizer;

$forestAgent->customizeCollection(
    'User',
    function (CollectionCustomizer $builder) {
        $builder->renameField('account_v3_uuid_new', 'account')->removeField('password');
    }
);

Renamed and removed fields are renamed and removed ONLY in the admin panel.

In your code:

  • Removed fields are still accessible (for instance, as dependencies to compute new fields)

  • Renamed fields must still be referred to by using their original name.

Last updated