我正在使用ZendFramework 2.x并尝试为一些现有路由添加路由。此外,我想在die URL中放入一些参数。如果我将段类型用于我的新路线('陈列室'),我可以调用我的新URL并转发到相应的视图。不幸的是我无法在URL中设置一些参数。另一种选择是在我的module.config.php文件中使用段类型,但是我会得到一些ZF-2-Exception,我的路由配置不正确,甚至在渲染我的介绍视图之前就会发生这种情况。在此先感谢我,如何在路由子路由组合中组合段和文字类型用法,或告诉我如何将参数添加到文字类型URL。
Module:
的module.config.php中的路由配置'router' => array(
'routes' => array(
'zfcuser' => array(
'type' => 'Literal',
'priority' => 1000,
'options' => array(
'route' => '/user',
'defaults' => array(
'controller' => 'zfcuser',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'showroom' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:id',
'defaults' => array(
'controller' => 'zfcuser',
'action' => 'showRoom',
'id' => '1',
),
),
),
'login' => array(
'type' => 'Literal',
UPDATE:触发错误的片段(请参阅注释)
<?php
$roomIndex = 1;
foreach($roomsPaginator->getCurrentItems() as $room){
$roomURL = 'zfcuser/showroom' . '/' . $roomIndex;
echo "<p>Name: " . $room['name'] . "; Luftfeuchtigkeit: " . $room['humidity'] . "; <a class='btn' href='" . $this->url($roomURL) . "'>Betreten »</a></p>";
$roomIndex++;
}
?>
答案 0 :(得分:0)
我不确定这是否是导致错误的原因,但我认为您没有正确使用URL帮助程序。您没有构建URL并将其传递给帮助程序,我们的想法是帮助程序使用路径名和params为您构建URL。你可能想要这样的东西:
$roomIndex = 1;
foreach($roomsPaginator->getCurrentItems() as $room){
echo "<p>Name: " . $room['name'] . "; Luftfeuchtigkeit: " . $room['humidity'] . "; <a class='btn' href='" . $this->url('showroom', array('id' => $roomIndex)) . "'>Betreten »</a></p>";
$roomIndex++;
}