52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
---
|
|
title: Text input column
|
|
---
|
|
import AutoScreenshot from "@components/AutoScreenshot.astro"
|
|
|
|
## Overview
|
|
|
|
The text input column allows you to render a text input inside the table, which can be used to update that database record without needing to open a new page or a modal:
|
|
|
|
```php
|
|
use Filament\Tables\Columns\TextInputColumn;
|
|
|
|
TextInputColumn::make('email')
|
|
```
|
|
|
|
<AutoScreenshot name="tables/columns/text-input/simple" alt="Text input column" version="3.x" />
|
|
|
|
## Validation
|
|
|
|
You can validate the input by passing any [Laravel validation rules](https://laravel.com/docs/validation#available-validation-rules) in an array:
|
|
|
|
```php
|
|
use Filament\Tables\Columns\TextInputColumn;
|
|
|
|
TextInputColumn::make('name')
|
|
->rules(['required', 'max:255'])
|
|
```
|
|
|
|
## Customizing the HTML input type
|
|
|
|
You may use the `type()` method to pass a custom [HTML input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types):
|
|
|
|
```php
|
|
use Filament\Tables\Columns\TextInputColumn;
|
|
|
|
TextInputColumn::make('background_color')->type('color')
|
|
```
|
|
|
|
## Lifecycle hooks
|
|
|
|
Hooks may be used to execute code at various points within the input's lifecycle:
|
|
|
|
```php
|
|
TextInputColumn::make()
|
|
->beforeStateUpdated(function ($record, $state) {
|
|
// Runs before the state is saved to the database.
|
|
})
|
|
->afterStateUpdated(function ($record, $state) {
|
|
// Runs after the state is saved to the database.
|
|
})
|
|
```
|