2011-04-15 115 views
0

我使用CakePHP建立一個原型搜索應用程序和我有了下面的代碼到目前爲止搜索控制器:CakePHP的索引與查詢

class SearchController extends AppController 
{ 
    var $name = 'Search'; 

    var $uses = array(); 

    function index ($query) 
    { 
     $query = $_GET['q']; 

     $this->set('title_for_layout', $query. ' – smplr'); 

     // if no query then redirect to home 
     if (!$query) 
     { 
      $this->redirect(array('controller' => 'home', 'action' => 'index')); 
     } 
    } 
} 

所以這個當用戶有這樣的事情,將被解僱:domain.com/search?q=Hello

我的問題是如何使用查詢傳入index()

目前我必須手動創建一個新變量來抓取使用$_GET的查詢字符串,我相信這不是使用Cake做到這一點的方法。

任何幫助非常感謝。由於

+0

謝謝,哥們。與你的caaaaaake玩得開心。 – Jage 2011-04-15 23:36:33

回答

1

您需要使用:

$this->params['url']['q']; 

更具體地說:

function index ($query) 
    { 
     $query = $this->params['url']['q']; 

.... 
+0

所以我根本不需要'index()'裏面的'$ query'呢?因爲我可以直接使用params中的變量內容? – Cameron 2011-04-15 23:19:03

+0

是的,你不需要捕獲$ query作爲函數參數。 – Jage 2011-04-15 23:19:55

+0

爲什麼不呢?當處理正常的功能,如創建,編輯等,你會這樣做。謝謝 – Cameron 2011-04-15 23:21:48