MVC ルーティングについて質問があります。
次のように、module.config.php でルートを設定しました。
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/page/:page]',
'constraints' => array(
'page' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Trade\Controller\Album',
'action' => 'index',
'page' => 1,
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
),
),
),
),
次のようなルートがあります。
/album
/album/page/2
/album/edit/3
/album/add
ビュースクリプトでは、次を使用します。
<a href="<?php echo $this->url('album/default', array('action'=>'edit', 'id' => $album->id));?>">Edit</a>
その結果、
/album/page/1/edit/2
これは、URLをどのように見せたいかではありません。URL を /album/edit/3 のようにしたい
また、url パラメーター配列にページ番号を指定していなかったので、既定のページが取得されるとは思っていませんでした。
必要なルーティングを設定するためのよりスマートな方法があると確信しており、ポインタをいただければ幸いです。
ピーター