ZendFramework 2.x を使用しており、既存のルートにルートを追加しようとしています。さらに、URLにもいくつかのパラメーターを入れたいと思います。新しいルート (「ショールーム」) にセグメント タイプを使用すると、新しい URL を呼び出すことができ、対応するビューに転送されます。残念ながら、URL にいくつかのパラメーターを設定できません。もう 1 つのオプションは、module.config.php ファイルでセグメント タイプを使用することですが、ルートが正しく構成されていないという ZF-2-Exception が発生します。これは、イントロ ビューをレンダリングする前でも発生します。route-child-route-combination でセグメントとリテラル タイプの使用法を組み合わせる方法、またはリテラル タイプの URL にパラメータを追加する方法を教えてくれてありがとう。
モジュールの 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',
更新: エラーをトリガーするスニペット (コメントを参照)
<?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++;
}
?>