
Filament: Preencher Select com dados do Banco
Se você deseja buscar as categorias diretamente do banco de dados e preencher as opções do campo Select sem atualização em tempo real, você pode usar o método options() com uma consulta ao model que representa as categorias.
Aqui está como fazer isso:
Código para Buscar Categorias do Banco de Dados
Select::make('category_id') ->label('Categoria') ->options(\App\Models\Blog\Category::pluck('name', 'id')) // Busca categorias do banco ->placeholder('Selecione uma categoria') ->columnSpan(2), // Define o tamanho da coluna, opcional
Explicação
\App\Models\Blog\Category::pluck('name', 'id'):
O método pluck() retorna um array associativo onde:
- A chave será o id da categoria.
- O valor será o name da categoria.
Exemplo de retorno:
[ 1 => 'Tecnologia', 2 => 'Saúde', 3 => 'Educação', ]
Adiciona uma opção padrão para instruir o usuário a selecionar algo.
->placeholder('Selecione uma categoria'):
Banco de Dados: Certifique-se de que você já tenha categorias na tabela categories. Se precisar adicionar algumas categorias para testes, use o Tinker:
php artisan tinker \App\Models\Blog\Category::create(['name' => 'Tecnologia']); \App\Models\Blog\Category::create(['name' => 'Saúde']); \App\Models\Blog\Category::create(['name' => 'Educação']);
Certifique-se de que o nome do campo (category_id) corresponde ao nome do campo na tabela posts, que é a chave estrangeira para categories.