2013-04-02 46 views
8

我想不出來生成網址來自世界各地,我想,在Zend的2ZF2 - 產生網址從路線

我得到的行動和控制,所以我試試這個:

$this->url('myControllerName', array('action' => 'myActionName')); 

但這返回一個對象,我只想要這條路線的完整URL字符串

有人可以幫我找到正確的方法嗎?

編輯:根據斯托揚,也許我在我的路線上犯了一個錯誤。這裏是我的module.config

'router' => array (
       'routes' => array (
         'indexqvm' => array (
           'type' => 'segment', 
           'options' => array (
             'route' => '/Indexqvm[/:action][/:id_event]', 
            'constraints' => array (
              'action' => '[a-zA-Z][a-zA-Z0-9_-]+', 
              'id_event' => '[0-9]+' 
            ), 
            'defaults' => array (
              'controller' => 'Qvm\Controller\Indexqvm', 
              'action' => 'index' 
            ) 
          ) 
        ), 

和我通話的部分:

echo $this->url('indexqvm', array('action' => 'list-index')); 

錯誤: 開捕致命錯誤:對象類的Zend \的mvc \控制器\插件\ URL不能轉換爲字符串

回答

22

在調用$this->url(...)(參見下文)之前使用回顯,這將顯示整個URL。

<?php echo $this->url('route-name', $urlParams, $urlOptions); ?> 

注意的url()第一放慢參數是路由的名稱作爲您的[module]/config/module.config.php文件中指定。

有關ZF2的URL視圖助手的更多信息,請參閱this

EDIT響應於問題編輯:

上面部分涉及使用URL視圖助手。

如果你想在控制器中的URL,那麼你需要URL控制器插件。

<?php $url = $this->url()->fromRoute('route-name', $params, $options); ?> 

This是該控制器插件的ZF2手冊的參考。

希望這有助於:)

斯托揚

+0

謝謝斯托揚爲這個快速的回答, 然而,因爲我沒有得到一個字符串,我不能迴應它: 可捕獲的致命錯誤:Zend \ Mvc \ Controller \ Plugin \ Url類的對象不能轉換爲字符串 也許我對我的路線犯了一個錯誤,我將編輯我的帖子以添加我的代碼 –

+0

@ Reign.85我根據您的編輯修改了我的答案。希望這會給你想法如何創建網址:) –

+0

坦克你這麼多,這項工作對我來說,我只需要添加服務器的URL到路徑 –

1

您可以在一個.phtml文件中使用此

echo $this->url('HelloWorld/default', array('controller'=>'Index', 'action'=>'registration')); 

哪裏的HelloWorld /默認路由,其餘的是控制器及其作用也可以將其他參數添加到數組中作爲鍵和值對。