> ## Documentation Index
> Fetch the complete documentation index at: https://docs.advancedtables.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Additional Configurations

> Additional configuration options including table loading indicators, User model customization, and other global settings.

## Table Loading Indicators (New)

If you would like to give your users more feedback when their table is loading, you may enable a loading skeleton overlay by adding the `->tableLoadingOverlay()` method:

```php theme={null}
AdvancedTablesPlugin::make()
    ->tableLoadingOverlay()
```

If any of your table columns are using the `->extraCellAttributes()` method, you will need to make sure you pass in `true` as the second parameter so that your attributes are merged with the plugin's:

```php theme={null}
TextColumn::make('name')
    ->extraCellAttributes([
        'class' => 'bg-gray-500'
    ], merge: true)
```

Additional loading indicator types and effects will be coming in the future. Feel free to reach out to me with your suggestions.

> Note: Be sure to run `npm run build` and `php artisan filament:upgrade` after enabling this feature.

## User::class

If you are using a User configuration other than Laravel's default, you should configure these *before* running your migrations:

### Configuring the User::class

You may customize the `User::class` by passing your custom class to the `user()` method:

```php theme={null}
AdvancedTablesPlugin::make()
    ->user(MyUser::class)
```

### Configuring the users database table

You may customize the users database table by passing the name of your table to the `userTable()` method:

```php theme={null}
AdvancedTablesPlugin::make()
    ->userTable('my_users_table')
```

### Configuring the user name columns

By default, Laravel's default `users` table includes a `name` column which Advanced Tables expects to exist. If you have modified your `users` table to something such as `first_name` and `last_name` you may configure this using the `userTableNameColumn()` method:

```php theme={null}
AdvancedTablesPlugin::make()
    ->userTableNameColumn('first_name')
```

If you have only have a `first_name` and `last_name` column, but still wish to show a user's full name in the User Views Resource, you may create a virtual column to support this:

```php theme={null}
$table->string('full_name')->virtualAs('concat(first_name, \' \', last_name)');
```

```php theme={null}
AdvancedTablesPlugin::make()
    ->userTableNameColumn('full_name')
```

### Configuring the user primary key

If you are set your primary key on your `User::class` model to something other than Laravel's default `id`, you should also configure this in Advanced Tables using the `userTableKeyColumn()` method:

```php theme={null}
AdvancedTablesPlugin::make()
    ->userTableKeyColumn('uuid')
```

### Configuring the authentication guard

By default, Advanced Tables will use whichever authentication guard is [set on your Filament panel](https://filamentphp.com/docs/3.x/panels/users#setting-the-authentication-guard). If you are using standalone Table Builder, you may set the authentication guard in the `advanced-tables` config file:

```php theme={null}
'users' => [
    'auth_guard' => 'web',
],
```

## Language Files

Each text field in Advanced Tables has been added to the language file allowing you to customize the text to better fit your application needs. You can publish the language files with:

```bash theme={null}
php artisan vendor:publish --tag=advanced-tables-translations
```

This will copy the language files to your `resources\lang\vendor\advanced-tables` directory. Currently 🇺🇸 English, 🇲🇽 Spanish, and 🇫🇷 French translations are available.
