web-dev-qa-db-ja.com

ZF2-ルートからURLを生成する

Zend 2で、必要な場所からURLを生成することができません。

私はアクションとコントローラーを取得するので、これを試してみます:

$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\Controller\Plugin\Urlのオブジェクトを文字列に変換できませんでした

9
Reign.85

$this->url(...)(以下を参照)を呼び出す前にエコーを使用すると、URL全体が表示されます。

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

url()の最初のパラメーターは、_[module]/config/module.config.php_ファイルで指定されているルートの名前であることに注意してください。

ZF2のURLビューヘルパーの詳細については、 this を参照してください。

質問の編集に応じて編集します。

上記のセクションは、URLビューヘルパーの使用に関連しています。

コントローラにURLが必要な場合は、URLコントローラプラグインが必要です。

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

This は、このコントローラープラグインのZF2マニュアルへの参照です。

お役に立てれば :)

ストヤン

25
Stoyan Dimov

これは.phtmlファイルで使用できます

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

ここで、HelloWorld/defaultはルーティングであり、残りはコントローラーとそのアクションです。また、キーと値のペアとして配列に追加する他のパラメーターを送信することもできます。

1
Azhar Ahmad