2012-09-18 33 views
1

我需要爲類別切換創建URL,切換類別應該將頁面重置爲1st並更改cat名稱,但保留其餘的url params。 URL的如何創建一個基於指定路由的URL字符串並保留參數

例子:

http://example.com/cat/fruits/page/3/q/testquery/s/date/t/kcal/mine/26/maxe/844/minb/9/mint/4/maxt/93/minw/7/minbl/6/maxbl/96 

URL中包含許多不同的PARAMS,但類別名稱和頁面應該永遠第一,沒有頁面類別應太,並顯示第1頁。

目前我已經定義了兩條路由,並且我使用了Zend的url helper和named路由,但是它重置了參數,並且作爲最終結果我有/ cat/cat_name/page/1 url。

$category_url = $view->url(array('category'=>$list_item['url'],'page'=>1),'category',FALSE) 


resources.router.routes.category_main.route = "/cat/:category/*" 
resources.router.routes.category_main.defaults.module = "ilewazy" 
resources.router.routes.category_main.defaults.controller = "index" 
resources.router.routes.category_main.defaults.action = "results" 
resources.router.routes.category_main.defaults.category = 
resources.router.routes.category_main.defaults.page = 1 

resources.router.routes.category.route = "/cat/:category/page/:page/*" 
resources.router.routes.category.defaults.module = "ilewazy" 
resources.router.routes.category.defaults.controller = "index" 
resources.router.routes.category.defaults.action = "results" 
resources.router.routes.category.defaults.category = 
resources.router.routes.category.defaults.page = 1 

我需要在這種情況下創建自定義方法來組裝url嗎?

+2

*閃爍*到底是什麼,URL – wesside

+0

沒什麼特別的,只是網址爲搜索和排序功能,不知道爲什麼這一切都閃爍(: – stawek

回答

0

解決方法非常簡單,只需要將所有當前請求參數傳遞給url助手 (並且在我的情況下optionaly覆蓋/添加其中的一些,頁面和類別),最後一個變量設置爲FALSE以防止路由重置。

$view->url(
     array_merge(
       $params, 
       array('category' => $list_item['url'], 
       'page' => 1) 
       ), 
       'category_main', 
      FALSE 
      ); 
0

事我會嘗試:

  1. 添加模塊,控制器和行動PARAMS在$ urlOptions(這是你傳遞給視圖助手的 第一陣列)
  2. 代替「分類」路線名稱試空並看看你對 有什麼作用。
  3. 嘗試刪除這條線

請註明是ZF的什麼版本您使用 「= resources.router.routes.category.defaults.category」。

相關問題