2012-08-08 20 views
0

我在視圖的一種形式:CakePHP的空passedArgs

echo $this->Form->create('Customers', array('action' => 'index')); 
echo $this->Form->input('category_id'); 
echo $this->Form->end('Search'); 

而在控制器的方法:

function index() { 
    debug($this->passedArgs); 
} 

但調試消息打印出一個空數組。

當我手工鍵入的網址:

http://domainna.me/admin/customers/index/category_id:4 

調試消息打印出: 陣列 ( [season_id] => 16 )

和一切行爲如何我想它至。我錯過了什麼?

-----編輯------

調試($這個 - >請求 - > PARAMS)打印:

Array 
(
    [plugin] => 
    [controller] => customers 
    [action] => index 
    [named] => Array 
     (
     ) 

    [pass] => Array 
     (
     ) 

    [isAjax] => 
) 
+0

我想你錯過了一個問題。 :)(即你想要做什麼/希望實現/期待) – Dave 2012-08-08 20:45:52

+0

嘗試與調試($ this-> request-> params)'並檢查,它打印什麼? – 2012-08-09 04:45:37

+0

@Dave:提交表單時,我想讓url看起來像上面的例子。 – Asker 2012-08-09 22:06:58

回答

0

我認爲你缺少的部分GET: http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-create

那麼它將使用get-urls而不是post。

但我還是會建議你使用先進的搜索插件,像蛋糕DCS: https://github.com/CakeDC/search

那裏你將有你想要的結果的正確方法(使用PRG重定向)。包括所有強大的功能。

+0

我不希望使用GET,因爲這會使URLS看起來不同,例如index?category_id = 4,我想用更多的CakePHP方式來做到這一點。 – Asker 2012-08-09 22:12:01

+0

nono,'?cat = 4'與cake或它的get/post(它的非重寫url方式)無關。對於蛋糕「/ foo:bar/second:one/...」是GET並且/ controller/action上的表單發佈是POST。 – mark 2012-08-09 23:19:54