Olá, Elisame! Parece que você está no caminho certo com a ideia de rotas dinâmicas. No Laravel, você pode definir parâmetros em suas rotas para lidar com isso.
Primeiro, você precisa definir rotas que aceitam esses parâmetros em seu arquivo web.php
(ou api.php
se estiver criando uma API). Por exemplo:
Route::get('/produtos/categoria/{categoria}', 'ProdutoController@filtrarPorCategoria');
Route::get('/produtos/{afiliacao}', 'ProdutoController@filtrarPorAfiliacao');
Route::get('/produtos/status/{status}', 'ProdutoController@filtrarPorStatus');
Em seguida, em seu ProdutoController
, você pode ter métodos que aceitam esses parâmetros e filtram os produtos de acordo. Por exemplo:
public function filtrarPorCategoria($categoria)
{
$produtos = Produto::where('categoria', $categoria)->get();
return view('produtos.index', ['produtos' => $produtos]);
}
public function filtrarPorAfiliacao($afiliacao)
{
$produtos = Produto::where('afiliacao', $afiliacao)->get();
return view('produtos.index', ['produtos' => $produtos]);
}
public function filtrarPorStatus($status)
{
$produtos = Produto::where('status', $status)->get();
return view('produtos.index', ['produtos' => $produtos]);
}
Esses métodos irão buscar todos os produtos que correspondem ao parâmetro fornecido (categoria, afiliação ou status) e, em seguida, retornarão a mesma view de index de produtos, mas com os produtos filtrados.
Lembre-se de substituir 'categoria'
, 'afiliacao'
e 'status'
pelas colunas correspondentes em seu banco de dados. Além disso, certifique-se de que os valores de categoria, afiliação e status na URL estejam no mesmo formato que os valores no banco de dados.
Espero ter ajudado e bons estudos!