2010-02-18 64 views
10

嗨,大家好 - 我使用的是Zend框架,我需要的是在我的視圖中構建一個url。通常在常規的php代碼中,我只需使用全局的$ _GET來獲取GET變量。然而與Zend我設置它來清潔的URI如此:Zend Framework - 需要從視圖訪問GET參數

AC =列表&過濾=工作&頁= 2

貌似 指數/ AC /表/過濾/工程/頁/ 2

在我看來,我設置一個鏈接CS這樣,如果GET變量過濾器等於作品則該鏈接的顏色會有所不同,它會指向同一個頁面只掛像這樣:

指數/ ac/list/filter/extra/page/2

和明智一樣我有一些其他的鏈接,只有一個GET值 - 我該如何設置 - 我使用Zend框架...

回答

30

要訪問請求變量視圖中的直接,你可以這樣做:

Zend_Controller_Front::getInstance()->getRequest()->getParam('key'); 

但是,正如其他人所說,這不是一個好主意。它可能會更容易,但考慮其他的選擇:

  • 設置視圖變量在控制器
  • 編寫從請求對象
5

如果您需要從視圖訪問GET參數,我認爲你做錯了。

我建議您設置一個包含所有參數的路線,然後從視圖中使用$this->url來呈現有效且正確的網址。

富勒索姆更多信息,請查看以下博客文章(不,我不是作家): http://naneau.nl/2007/07/08/use-the-url-view-helper-please/

編輯:

如果你想成爲「懶惰」,你可以設置通過執行$this->view->param = $this->_getParam('param')從您的控制器查看參數。然後,您可以通過做echo $this->param;從您的視圖訪問param。不過,我不建議這樣做。

+0

有趣的拉變量視圖助手,但它並沒有說訪問現有的GET參數很多.. – Ali 2010-02-18 13:13:17

+0

@Ali,是的,它的確如此。 YOURDOMAIN。com/news/id/124/page/2 < - $ _GET ['id']將作爲$ this - > _ getParam('id')'在控制器中訪問,$ _GET ['page']是$這 - > _ getParam( '頁面'); – chelmertz 2010-02-19 11:31:27

+0

我的意思是我需要在我的視圖中訪問GET參數... :( – Ali 2010-02-20 11:39:10

1

您可以從控制器傳遞:$this->view->page = $this->_getParam('page');

腳註:我同意@alexn。