Routing 找到值为默认值的ZF2主机名路由

Routing 找到值为默认值的ZF2主机名路由,routing,zend-framework2,Routing,Zend Framework2,我想创建一个白标站点,并使用主机名路由。 我为所有其他路由创建了一个父路由,它只将找到的主机名存储在一个名为“whitelabel”的变量中 创建的阵列: <?php $route = array( 'type' => 'Hostname', 'options' => array( 'route' => ':whitelabel', 'defaults' => array( '__NAMESPACE__' => 'App

我想创建一个白标站点,并使用主机名路由。 我为所有其他路由创建了一个父路由,它只将找到的主机名存储在一个名为“whitelabel”的变量中

创建的阵列:

<?php
$route = array(
'type' => 'Hostname',
    'options' => array(
    'route' => ':whitelabel',
    'defaults' => array(
        '__NAMESPACE__' => 'Application\Controller',
        'controller' => 'Index',
        'action' => 'index',
    ),
),
);
?>


现在,每当我在视图中调用url帮助程序时,它都无法找到“whitelabel”的值。如何将找到的值存储为url帮助器的默认值?

url帮助器生成相对路径。当路径总是相对于当前主机时,为什么需要域名?在调用没有“whitelabel”值的url帮助程序时,我遇到以下错误:致命错误:未捕获异常“Zend\Mvc\Router\exception\InvalidArgumentException”with message”缺少参数“whitelabel”'通常情况下,您会在配置文件中配置路由,它会有一个名称(数组键)封装路由定义,您可以使用该名称将url帮助器指向正确的方向。例如,在skeleton应用程序中,实际上通过调用
$this->url('home')
来引用路由
/
。也许我不知道主机名路由在这里是如何工作的,它不是我需要调用的,但我首先想到的是,似乎不需要将任何类型的主机及其相对路径传递给url帮助器。据我所知,我需要将我称为“注册”的路由配置为主机名路由的子路由,因为我也想检查主机名。当我调用$this->url('hostname/register')时,现在我要么得到这个错误,要么-如果我为白标签设置了默认值-它会生成一个url问题:如果我将默认值设置为平台表单的提供者,我会失去白标签版本,如果总是在url helper callsHad中重新分配白标签值,使用您的规范进行快速操作,添加
whitelabel
作为参数,例如
$this->url('hostname/register',array('whitelabel'=>'some.domain.tld'),这将需要做很多工作;作为url生成
some.domain.tld/register`但是,生成的链接是404,所以我仍然不认为我在夸大它的工作原理:-?