我有一个$siteRoute
子域:
$siteRoute = new Zend_Controller_Router_Route_Hostname(
':siteSlug.test.com',
array(
'module' => 'site',
),
array('siteSlug' => '^(programming|photography|gaming)$')
);
$router->addRoute('site', $siteRoute);
我有$ questionRoute的问题'花哨
$questionRoute = new Zend_Controller_Router_Route(
'questions/:questionId/:questionSlug',
array(
'controller' => 'question',
'action' => 'view',
'questionSlug' => ''
)
);
$router->addRoute('question', $siteRoute->chain($questionRoute));
所有这两条路线都没有任何问题。例如:
programming.test.com
匹配并发送site
路由和programming.test.com/questions/132/test-headline
路由question
匹配。
但是当我使用Zend_View的url helper或Zend_Router的用于问题路径的汇编函数组装一个新url时,它只返回路径,而不是像以下那样的域:
echo $questionRoute->assemble(array('questionId' => 1, 'questionSlug' => 'testing-testing', 'siteSlug' => 'programming'));
回显questions/1/testing-testing
而不是programming.test.com/questions/1/testing-testing
。
我该怎么做?
答案 0 :(得分:1)
尝试这段代码,对我来说很好(如果你需要更多的例子告诉我)
$router = Zend_Controller_Front::getInstance()->getRouter();
echo $router->assemble(array('questionId' => 1, 'questionSlug' => 'testing-testing', 'siteSlug' => 'programming'), 'question');
答案 1 :(得分:0)
路由器只关心路由路由,即获取路径并将其与模块,控制器和操作相匹配。它基本上没有域的意识。汇编仅根据您的参数创建路径(路径)。
echo $_SERVER['HTTP_HOST'] . '/' . $questionRoute->assemble(...);