首页 > 解决方案 > Symfony 中有很多可选参数的路由

问题描述

我有很多产品,可以过滤很多不同的参数。所以用户在表单中输入搜索参数,然后列表由这些参数过滤。

我试图创建这样的路线:

/**
 * Display a list of product
 * @Route("/product/list/{name}/{price_min}/{price_max}/{publish_date}/{supplier_code}", name="product_list")
 */
public function listProduct(){

// ... Check  parameters format and then escape special caracters
// ... Display product logic
return $this->render('Product/product_list.html.twig', $array_params_view);
}

我知道你可以提供可选参数,但这个解决方案对我来说真的很糟糕......我认为可能还有另一种解决方案。

我曾考虑使用Request而不是很多参数,但如果我这样做,我会失去漂亮且易于阅读的 URL 的功能,并且管理路由可能会更加困难。

我不知道搜索功能的最佳解决方案是什么。

标签: symfonysymfony5

解决方案


如果您使用路由搜索到您的列表,我认为您需要阅读以下内容:链接

查询字符串是一种更好的搜索方式。

// the query string is '?foo=bar'

$request->query->get('foo');
// returns 'bar'

推荐阅读