--- title: Custom columns --- import LaracastsBanner from "@components/LaracastsBanner.astro" ## View columns You may render a custom view for a cell using the `view()` method: ```php use Filament\Tables\Columns\ViewColumn; ViewColumn::make('status')->view('filament.tables.columns.status-switcher') ``` This assumes that you have a `resources/views/filament/tables/columns/status-switcher.blade.php` file. ## Custom classes You may create your own custom column classes and cell views, which you can reuse across your project, and even release as a plugin to the community. > If you're just creating a simple custom column to use once, you could instead use a [view column](#view-columns) to render any custom Blade file. To create a custom column class and view, you may use the following command: ```bash php artisan make:table-column StatusSwitcher ``` This will create the following column class: ```php use Filament\Tables\Columns\Column; class StatusSwitcher extends Column { protected string $view = 'filament.tables.columns.status-switcher'; } ``` It will also create a view file at `resources/views/filament/tables/columns/status-switcher.blade.php`. ## Accessing the state Inside your view, you may retrieve the state of the cell using the `$getState()` function: ```blade
{{ $getState() }}
``` ## Accessing the Eloquent record Inside your view, you may access the Eloquent record using the `$getRecord()` function: ```blade
{{ $getRecord()->name }}
```