# Methods

The `Column` class provides several methods to manipulate a column in the grid.

#### `setFilter(BaseFilter $filter)`

This method sets a filter for the column. Available filters are: `TextFilter`, `DateFilter`, `SelectFilter`, `BooleanFilter`.

```php
public function setFilter(BaseFilter $filter): static
```

#### `setRecordField(?string $recordField)`

This method sets the model field of the column.

```php
public function setRecordField(?string $recordField): void
```

#### `setSortable($isSortable = true)`

This method enables or disables sorting for a column.

```php
public function setSortable($isSortable = true): static
```

#### `setDateFormat(string $dateFormat)`

This method sets the date format used to display date values in the column.

```php
public function setDateFormat(string $dateFormat): static
```

#### `setTag(string $tag): static`

This method sets the tag of the column. The default tag is `td`.

```php
public function setTag(string $tag): static
```

#### `setRenderer(callable $renderer): static`

This method sets the renderer for the column. You can pass a callable, a class method, or a string.

```php
public function setRenderer(callable $renderer): static
```

```php
Column::make(label: 'Name')
    ->setRenderer(function ($record) {
        return $record->name;
    })
    ->setRenderer([MyClass::class, 'myMethod'])
    ->setRenderer('Random Text')
```

```php
class MyClass
{
    public static function myMethod($record)
    {
        return $record->name;
    }
}
```

#### `setAttributes(array $attributes): static`

This method sets the attributes of the column. The attributes are HTML attributes that are applied to the column tag. You can pass a callable, a class method or an array.

```php
public function setAttributes(callable|array $attributes): static
```

```php
Column::make(label: 'Name')
    ->setAttributes(function ($record) {
        return [
            'class' => 'text-center',
            'data-id' => $record->id,
            'wire:click.prevent' => 'download(' . $record->id . ')',
        ];
    })
    ->setAttributes([MyClass::class, 'myMethod'])
    ->setAttributes(['class' => 'bg-red-500'])
```

```php
class MyClass
{
    public static function myMethod($record)
    {
        return [
            'class' => 'text-center',
            'data-id' => $record->id,
            'wire:click.prevent' => 'download(' . $record->id . ')',
        ];
    }
}
```
