私の質問は、Zend_Controller_Router_Route_Chain を使用して複数のルートを連鎖させる方法です。
たとえば、年/月/日の 3 つのルートをチェーンしたいのですが、ゴールは次のとおりです。
URLが example.com/2011 インデックス コントローラ、年アクションを実行します example.com/2011/11 インデックス コントローラ、年月アクションを実行します example.com/2011/11/10 インデックス コントローラ、年月日アクションを実行します
私はこのコードを使用しようとしています:
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$chain = new Zend_Controller_Router_Route_Chain();
$route1 = new Zend_Controller_Router_Route(
':year',
array(
'controller' => 'news',
'action' => 'year'
)
);
$route2 = new Zend_Controller_Router_Route(
':month',
array(
'controller' => 'news',
'action' => 'year-month'
)
);
$route3 = new Zend_Controller_Router_Route(
':day',
array(
'controller' => 'news',
'action' => 'year-month-day'
)
);
$chain->chain($route1)
->chain($route2)
->chain($route3);
$router->addRoute('chain', $chain)
->addRoute('route3', $route3)
->addRoute('route2', $route2)
->addRoute('route1', $route1);
example.com/2012 と example.com/2012/11/11 にアクセスすると、すべて問題ありません
しかし、example.com/2012/11/ アプリケーションにアクセスすると、年月日のアクションが表示され、ページに
Notice: 未定義のインデックス: day in P:\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Router\Route.php 行 299
おそらく私は何か間違ったことをしています。私の問題を解決するのを手伝ってください。ありがとう。