2014-03-02 46 views
1

在CakePHP 2.4中,如何將表單直接傳遞給控制器​​參數?我的控制器採用格式爲/Model/index/by:keyword的參數,但FormHelper會不斷在URL中插入問號和等號:Model/index?by%3A=keywordCakePHP:使用FormHelper將搜索查詢傳遞給控制器​​參數

這是我一直在使用的形式。有什麼方法可以改變這種默認行爲嗎?

echo $this->form->create('Post', array('action' => '/index', 'type' => 'get', 'class' => 'navbar-form')); 
echo $this->form->input("by:", array('label' => '', 'placeholder' => 'Search', 'class' => 'form-control')); 
echo $this->form->end(); 

回答

2

我會嘗試創建這樣的形式:

echo $this->Form->create('Post', array('type' => 'GET', 'url' => array('controller' => 'yourpostcontroller', 'action' => 'search'))); 
echo $this->Form->input('search', array('class' => 'form-control')); 
echo $this->Form->button('Search', array('div' => false, 'class' => 'btn')); 
echo $this->Form->end(); 

在 「搜索」 行動(控制器內)不要忘記讀取請求:

if(!empty($this->request->query['search']) ...{ 
    //do something 
} 

希望它有幫助。

+0

將URL格式從'$ this-> passedArgs ['by']'(url格式'/ by:keyword')更改爲'$ this-> request-> query ['by']'(url格式'?by = keyword'),但它很好地訣竅! – schnauss

相關問題