BentCoder
BentCoder

Reputation: 12740

Accessing route path in event listener

ROUTE:

user_lock:
    path:     /user/lock/{id}
    defaults: { _controller: SiteMainBundle:Frontend\Default:userLock }
    methods:  [GET]

As you know, router above will create a URL like htt://mysite.com/app_dev.php/user/lock/66 so I need to get only /user/lock/66 part of it in event listener below. How can I do it?

I tried $request->getBaseUrl() and $request->getBasePath() didn't give me what I wanted.

YAML

services:
    kernel.listener.kernel_controller:
        class: Site\MainBundle\EventListener\Controller\KernelController
        tags:
            - { name: kernel.event_listener, event: kernel.controller, method: onKernelController }

CLASS

<?php

namespace Site\MainBundle\EventListener\Controller;

use Symfony\Component\HttpKernel\Event\FilterControllerEvent;

class KernelController
{
    public function onKernelController(FilterControllerEvent $event)
    {
        $request = $event->getRequest();

        $this->writeLog('ROUTE', $request->attributes->get('_route'));
        $this->writeLog('CONTROLLER', $request->attributes->get('_controller'));
        $this->writeLog('ROUTE PARAMETERS', $request->attributes->get('_route_params'));

        $this->writeLog('ROUTE PATH', ??????????????????????????????);
    }
} 

Upvotes: 0

Views: 1449

Answers (1)

user2897701
user2897701

Reputation:

I think, you are looking for

$request->server->get('PATH_INFO');

Upvotes: 1

Related Questions