Skip to content

[테이블.컬럼] IconColumn

개요

아이콘 컬럼은 아이콘을 렌더링하여 해당 내용을 나타냅니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('status')
    ->icon(fn (string $state): string => match ($state) {
        'draft' => 'heroicon-o-pencil',
        'reviewing' => 'heroicon-o-clock',
        'published' => 'heroicon-o-check-circle',
    })

이 함수에서 $state는 컬럼의 값이며, $record를 사용하여 기본 Eloquent 레코드에 접근할 수 있습니다.

아이콘 컬럼

색상 커스터마이징

아이콘 컬럼은 동일한 문법을 사용하여 아이콘 색상도 지정할 수 있습니다. 색상은 danger, gray, info, primary, success, warning 중 하나가 될 수 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('status')
    ->color(fn (string $state): string => match ($state) {
        'draft' => 'info',
        'reviewing' => 'warning',
        'published' => 'success',
        default => 'gray',
    })

이 함수에서 $state는 컬럼의 값이며, $record를 사용하여 기본 Eloquent 레코드에 접근할 수 있습니다.

색상이 적용된 아이콘 컬럼

크기 커스터마이징

기본 아이콘 크기는 IconColumnSize::Large이지만, IconColumnSize::ExtraSmall, IconColumnSize::Small, IconColumnSize::Medium, IconColumnSize::ExtraLarge, IconColumnSize::TwoExtraLarge 중 하나로 크기를 커스터마이징할 수 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('status')
    ->size(IconColumn\IconColumnSize::Medium)
중간 크기의 아이콘 컬럼

불리언 처리

아이콘 컬럼은 데이터베이스 컬럼의 값이 true 또는 false일 때, boolean() 메서드를 사용하여 체크 또는 크로스 아이콘을 표시할 수 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('is_featured')
    ->boolean()

모델 클래스에서 이 컬럼이 이미 bool 또는 boolean으로 캐스팅되어 있다면, Filament가 이를 감지하므로 boolean()을 수동으로 사용할 필요가 없습니다.

불리언을 표시하는 아이콘 컬럼

불리언 아이콘 커스터마이징

각 상태를 나타내는 아이콘을 커스터마이징할 수 있습니다. 아이콘은 Blade 컴포넌트의 이름입니다. 기본적으로 Heroicons가 설치되어 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('is_featured')
    ->boolean()
    ->trueIcon('heroicon-o-check-badge')
    ->falseIcon('heroicon-o-x-mark')
커스텀 아이콘으로 불리언을 표시하는 아이콘 컬럼

불리언 색상 커스터마이징

각 상태를 나타내는 아이콘 색상을 커스터마이징할 수 있습니다. 색상은 danger, gray, info, primary, success, warning 중 하나가 될 수 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('is_featured')
    ->boolean()
    ->trueColor('info')
    ->falseColor('warning')
커스텀 색상으로 불리언을 표시하는 아이콘 컬럼

여러 아이콘 감싸기

여러 개의 아이콘을 표시할 때 한 줄에 다 들어가지 않으면 wrap()을 사용하여 감쌀 수 있습니다:

php
use Filament\Tables\Columns\IconColumn;

IconColumn::make('icon')
    ->wrap()

참고: 감싸기의 "너비"는 컬럼 라벨에 의해 영향을 받으므로, 더 촘촘하게 감싸려면 더 짧거나 숨겨진 라벨을 사용해야 할 수 있습니다.

나를 위한 문서 한글화