ルーターの調子が悪いです。
カスタムルートがあります:
$router->addRoute('showTopic',
new Zend_Controller_Router_Route('/forum/topic/:topic',
array('module' => 'forum',
'controller' => 'topic',
'action' => 'show'),
array('topic' => '\d+')));
しかし、この URL にアクセスしようとすると、localhost/forum/topic/16 というエラーが表示されます。
致命的なエラー:「トピックが指定されていません」というメッセージを含むキャッチされない例外「Zend_Controller_Router_Exception」
しかし、ルート /forum/topic にもすべてのトピックをリストする必要があるため、トピックのデフォルト値を設定したくありません...
第 2 に、カスタム ルートを追加するとデフォルト ルーターがオーバーライドされることはわかっていますが、デフォルト ルートもいくつか必要です。私が見つけた唯一の方法は、次のように、URL ビュー ヘルパーの 2 番目のパラメーターに「デフォルト」を設定することです。
$this->url(array(
'module' => 'forum',
'controller' => 'topic',
'action' => 'add'
), 'default', true)
デフォルトの動作を使用したいすべてのURLに対してこれを行う代わりに、よりエレガントな方法はありますか?