Saltar al contenido
Filament Rating Field
code

Detalles del ejemplo

Filament Rating Field

Campo de valoración interactivo para Filament v4 con soporte para estrellas, corazones y otros iconos.

Instalación

composer require cursosdesarrolloweb/filament-rating-field

Uso Rápido

Añade un campo de valoración en tu formulario:

use CursosDesarrolloWeb\RatingField\Forms\Components\RatingField;

RatingField::make('rating')
    ->label('Valoración del producto')

Campo de Formulario

use CursosDesarrolloWeb\RatingField\Forms\Components\RatingField;
use Filament\Support\Icons\Heroicon;

// Uso básico - 5 estrellas
RatingField::make('rating')
    ->label('Valoración del producto')

// Personalizar máximo
RatingField::make('priority')
    ->ratingMax(10)
    ->label('Prioridad')

// Diferentes iconos
RatingField::make('satisfaction')
    ->icon(Heroicon::Heart)
    ->color('danger')

// Permitir medios valores (3.5 estrellas)
RatingField::make('score')
    ->allowHalf()

// Con valor mostrado al lado
RatingField::make('average_rating')
    ->showValue() // Muestra "4.5 / 5" junto a las estrellas

// Tamaños: sm, md, lg, xl
RatingField::make('rating')
    ->size('lg')

// Con etiquetas descriptivas por valor
RatingField::make('experience')
    ->labels([
        1 => 'Muy malo',
        2 => 'Malo', 
        3 => 'Regular',
        4 => 'Bueno',
        5 => 'Excelente',
    ])
    ->showLabelOnHover()

// Requerido con validación
RatingField::make('rating')
    ->required()
    ->minValue(1)

Columna de Tabla

use CursosDesarrolloWeb\RatingField\Tables\Columns\RatingColumn;
use Filament\Support\Icons\Heroicon;

RatingColumn::make('rating')
    ->ratingMax(5)
    ->icon(Heroicon::Star)
    ->color('warning')

// Compacto para tablas densas
RatingColumn::make('rating')
    ->size('sm')

// Mostrar valor numérico junto a iconos
RatingColumn::make('rating')
    ->showValue()

Entry para Infolist

use CursosDesarrolloWeb\RatingField\Infolists\Components\RatingEntry;
use Filament\Support\Icons\Heroicon;

RatingEntry::make('rating')
    ->ratingMax(5)
    ->icon(Heroicon::Star)
    ->color('warning')
    ->size('lg')
    ->showValue()

Métodos Disponibles

Comunes a todos los componentes

Método Descripción Default
ratingMax(int) Número máximo de iconos 5
icon(Heroicon|string) Icono lleno Heroicon::Star
emptyIcon(Heroicon|string) Icono vacío Heroicon::OutlinedStar
color(string) Color del icono 'warning'
size(string) Tamaño: sm, md, lg, xl 'md'

Solo RatingField (formularios)

Método Descripción Default
allowHalf() Permitir valores decimales (.5) false
showValue() Mostrar valor numérico false
minValue(int) Valor mínimo requerido null
labels(array) Etiquetas por valor []
showLabelOnHover() Mostrar etiqueta al hover false

RatingColumn y RatingEntry

Método Descripción Default
showValue() Mostrar valor numérico false

Colores Disponibles

Color Descripción
primary Color primario del tema
secondary Color secundario
success Verde
warning Amarillo/Naranja (ideal para estrellas)
danger Rojo (ideal para corazones)
info Azul
gray Gris

Iconos Sugeridos

use Filament\Support\Icons\Heroicon;

Heroicon::Star          // Estrella (default)
Heroicon::Heart         // Corazón
Heroicon::HandThumbUp   // Pulgar arriba
Heroicon::Fire          // Fuego
Heroicon::Bolt          // Rayo

Requisitos

  • PHP 8.2+
  • Laravel 11+
  • Filament 4.x|5.x

Licencia

Propietario - Solo para suscriptores de CursosDesarrolloWeb.