Search code examples
phpzend-framework2zend-framework-routing

ZF2 Create route like " login?url=foo "


I'm struggling on this for 2 hours now. I've managed to create a route with parameter (named url) like /login/url:

'login' => array(
    'type' => 'segment',
    'options' => array(
        'route'    => '/login[/:url]',
        'defaults' => array(
             'controller' => 'my_controller',
             'action'     => 'login',
        ),
    ),
),

However I'd like to have an URL which looks like /login?url=foo. I've tried something like:

'route'    => '/login[?url=:url]',

But it does not work. Any idea how to achieve this on Zend Framework 2 ?

Thanks a lot!

EDIT: Trying something else like:

// onBootstrap method --> redirect to login page with request url as param    
$url = $router->assemble(
    array('url', $e->getRequest()->getRequestUri()),
    array('name' => 'login')
);

In controller (login action):

$request = $this->getRequest();
var_dump($request); exit;

I don't see the requested URL anywhere... any suggestion?


Solution

  • I don't think you should put your query string segment in your route. It would seem reasonable to have your route to be just /login and then manage your query string parameter in the controller.

    Otherwise, but I don't recommend it since it is deprecated, you could try to use the Query router.