この質問と同様に、url 拡張子を使用してフォーマットを渡すことはできましたが、事前に渡されたパラメーターを宣言する必要があります。例:
new Zend_Controller_Router_Route_Regex(
'([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)(\.(\w+))?',
array(
'module' => 'Default',
'controller' => 'index',
'action' => 'index',
),
array(
1 => 'module',
2 => 'controller',
3 => 'action',
4 => 'extension',
5 => 'format'
)
);
しかし、/:module/:controller/:action/*.:format??? が必要な場合はどうすればよいですか? URLを通過するパラメータの数に関係なく、「.whatever」がフォーマットパラメータになりますか? 基本的に、デフォルト ルーターを使用して拡張子を「format パラメータ」として追加しようとしています。
編集:
問題は拡張機能を取得することではなく、他のパラメーターを追加することです。例えば
/blogs/posts/view/post/500/foo/bar/format/html
次のように変換されます: array('module'=>'blogs','controller'=>'posts', 'action' => 'view', 'post'=>500, 'format' => 'html', ' foo' => 'バー');
しかし、次のように同じルートでフォーマットを表現できるようにしたい:
/blogs/post/view/post/500/foo/bar.html
アクションとフォーマットの間で宣言されているパラメーターの数に関係なく。