diff --git a/src/Controller/PartListsController.php b/src/Controller/PartListsController.php index ce5e9495..32719591 100644 --- a/src/Controller/PartListsController.php +++ b/src/Controller/PartListsController.php @@ -203,12 +203,13 @@ class PartListsController extends AbstractController } /** - * @Route("/parts/by_tag/{tag}", name="part_list_tags") + * @Route("/parts/by_tag/{tag}", name="part_list_tags", requirements={"tag": ".*"}) * * @return JsonResponse|Response */ public function showTag(string $tag, Request $request, DataTableFactory $dataTable) { + $tag = trim($tag); $table = $dataTable->createFromType(PartsDataTable::class, ['tag' => $tag]) ->handleRequest($request); diff --git a/src/DataTables/PartsDataTable.php b/src/DataTables/PartsDataTable.php index f944e7f3..db81b348 100644 --- a/src/DataTables/PartsDataTable.php +++ b/src/DataTables/PartsDataTable.php @@ -392,7 +392,7 @@ final class PartsDataTable implements DataTableTypeInterface } if (isset($options['tag'])) { - $builder->andWhere('part.tags LIKE :tag')->setParameter('tag', '%'.$options['tag'].'%'); + $builder->andWhere('part.tags LIKE :tag')->setParameter('tag', $options['tag']); } if (!empty($options['search'])) { diff --git a/templates/helper.twig b/templates/helper.twig index de6a8212..22faf498 100644 --- a/templates/helper.twig +++ b/templates/helper.twig @@ -27,7 +27,7 @@ {% macro string_to_tags(string, class="badge bg-info") %} {% for tag in string|split(',') %} - {{ tag | trim }} + {{ tag | trim }} {% endfor %} {% endmacro %}