I'm not sure if I'm approaching this problem in the correct way
I need the same route pattern for 2 different actions, like this
/{category}
going to productAction and
/{brand}
going to brandAction (without prefix)
A query to DB will tell me which type of entity this parameter is and then I can assign the action/controller to handle it
I could create an Action to handle this pattern and redirect to another action accordingly
I could create a Listener in kernel.controller event and reassign the controller accordingly
I could use Symfony CMF but seems to me like overkill.
Thanks in advance
Got it working using Option 2, not sure if that is the best way to do it
/**
* @param FilterControllerEvent $event
*/
public function onKernelController(FilterControllerEvent $event)
{
$routeService = $this->getRouteService();
$params = $request->attributes->all();
$slugs = array();
foreach ($params as $key => $param) {
if (preg_match('/slug*/', $key)) {
$node = $routeService->findBySlug($param);
if ($node !== null) {
$slug['id'] = $node->getEntityId();
$slug['type'] = $node->getEntityType();
$slugs[] = $slug;
}
}
}
$request->request->set('slugs', $slugs);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.