1

我现在为此苦苦挣扎了 2 个小时。我设法创建了一个带有参数(名为url)的路由,例如/login/url

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

但是我想要一个看起来像/login?url=foo. 我试过类似的东西:

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

但它不起作用。知道如何在 Zend Framework 2 上实现这一点吗?

非常感谢!

编辑: 尝试其他类似的东西:

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

在控制器中(登录操作):

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

我在任何地方都没有看到请求的 URL……有什么建议吗?

4

1 回答 1

2

我认为您不应该将查询字符串段放在您的路线中。/login让您的路线公正然后在控制器中管理您的查询字符串参数似乎是合理的。

否则,但我不推荐它,因为它已被弃用,您可以尝试使用Query router

于 2016-03-09T18:15:53.830 回答