私の管理モジュールでは、インデックス コントローラーに複数のフィルター オプションがあります。フィルタリングは、パラメーターに基づいて非常に簡単に実行できます。つまり、次のようになります。
http://www.site.com/admin/pages/by/date_added/order/asc
-> This orders the pages by "date_added" ascending
http://www.site.com/admin/pages/status/published
-> This shows only the pages with status "published"
http://www.site.com/admin/pages/category/cars
-> This show only the pages under the "cars" category.
次に、アプリケーションのブートストラップで、次のようなルートを構築しました。
$route = new Zend_Controller_Router_Route_Regex("^admin/pages/status/([a-z,_]+)$",
array(
"module" => "admin",
"controller" => "pages",
"action" => "index"
),
array(
1 => 'by',
2 => 'order',
)
);
$router->addRoute("admin/pages/order", $route);
問題は、これらすべてのパラメーターを組み合わせる方法だけでなく、それらをオプションにする方法も知らないということです。たとえば、次のようなリンクは必要ありません。
http://www.site.com/admin/pages/by/date_added/order/asc/category/cars
また...
http://www.site.com/admin/pages/category/cars/status/published