Route – hezké dynamické parametry

Danny
Člen | 146
+
0
-

Zdravím,
potřeboval bych nějak v routě zařídit to, že pokud do URL předám pole IDcek

$products = [1,2,3]
{plink Neco: products => $products}

což vytvoří něco jako

/neco/products%5B41%5D=36825&products%5B42%5D=36830&products%5B43%5D=36839

Aby ta URL vypadala nějak takto:

/neco/products/1/2/3

popr i takto:

/neco/1/2/3

Je to vůbec reálné?

Děkuji! :-)

Editoval Danny (4. 9. 2019 16:07)

David Matějka
Moderator | 6445
+
0
-

ahoj, mas dve moznosti:

  • vlastni router
  • v Route pouzit filter_in a filter_out plus nastavit validacni pravidlo parametru, aby mohlo obsahovat lomitka
Danny
Člen | 146
+
+1
-

@DavidMatějka

Díky za nakopnutí, nevim jestli je to ideální řešení ale udělal jsem to takto a funguje to.

		$frontendModule[] = new Route('[/<products .*>]', [
			'presenter' => 'Product',
			'action' => 'default',
			'products' => [
				Route::FILTER_OUT => function ($ids) {
					if(is_array($ids)) {
						return implode("/", $ids);
					}
					return $ids;
				}
			]
		]);