2013-07-29 44 views
0

我正在使用ZendFramework 2.x並試圖添加一些路由到一些現有的路由。此外,我想在URL中添加一些參數。如果我爲我的新路線('陳列室')使用細分類型,則可以撥打我的新網址並轉到相應的視圖。不幸的是,我無法在URL中設置一些參數。另一種選擇是在我的module.config.php文件中使用段類型,但是我會得到一些ZF-2-Exception,我的路由配置不正確,甚至在渲染我的介紹視圖之前發生。在此先感謝您向我展示如何在route-child-route-combination中組合segment和literal-type用法,或者告訴我如何將參數添加到文字類型的URL中。ZendFramework2 - 文字或段路由和參數

'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:在模塊module.config.php

路由的配置片段觸發錯誤(見註釋)

<?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 &raquo;</a></p>"; 
     $roomIndex++; 
    } 
?> 
+0

你的代碼看起來不錯。當你說你無法在URL中設置參數時,你能提供更多信息嗎?你是怎麼做到的,你有什麼錯誤/問題? –

+0

@TimFountain如果我將路線的類型設置爲文字並向mydomain.tld/showroom/myparameter發送請求 - 我收到404錯誤。 – Jochen

+0

如果它有一個參數,它應該是一個段路由。你在問題中遇到了什麼錯誤? –

回答

0

我不知道這是否是導致你的錯誤,但我不認爲你正確使用URL助手。你不建立一個URL並將它傳遞給助手,這個想法是幫助者使用路由名和參數爲你建立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 &raquo;</a></p>"; 
    $roomIndex++; 
} 
+0

不幸的是,這並沒有幫助。無論如何,我有另一個問題導致的問題:視圖文件駐留在我的應用程序模塊,路由定義只在我的zfcuser模塊。目前,在您更改之後,我仍然收到錯誤,路線陳列室未定義。 – Jochen

+0

偉大的工作現在 - 我只需要在應用程序模塊中定義路由。非常感謝! – Jochen