我一直在使用CakePHP的幾天,我想打一個簡單的搜索,但即時通訊卡我有這樣的:GET方法CakePHP的搜索表單
我的搜索表單:
<?php
echo $this->Form->create(array('controller' => 'negocios', 'action' => 'buscar', 'type' => 'get'));
echo $this->Form->input('lugar',
array('options' =>
array('City 1',
'City 2',
'City 3',
'City 4',
'City 5',
'City 6',
'City 7',
'City 8',
'City 9'
), 'empty' => 'All places', 'label' => false, 'div' => false, 'class' => 'selectric'));
echo $this->Form->input('buscador', array('placeholder' => 'Buscar negocios...', 'label' => false));
echo $this->Form->submit('search.png', array('type' => 'button', 'id' => 'buscar', 'div' => false));
echo $this->Form->end();
>
我的控制器:
public function buscar(){
$negocios = array();
if (!empty($this->request->params['Negocio'])) {
$query = $this->request->params['Negocio']['buscador'];
$conditions = array(
'conditions' => array(
'or' => array(
'Negocio.nombre LIKE' => "%$query%",
'Negocio.direccion LIKE' => "%$query%",
'Negocio.descripcion LIKE' => "%$query%",
'Negocio.direccion LIKE' => "%$query%",
'Negocio.email LIKE' => "%$query%",
'Negocio.web LIKE' => "%$query%",
'Negocio.facebook LIKE' => "%$query%",
'Negocio.twitter LIKE' => "%$query%",
'Negocio.categoria LIKE' => "%$query%"
)
)
);
$negocios = $this->Negocio->find('all', $conditions);
}
$this->set('negocios', $negocios);
debug($this->params);
}
而且我使用foreach()什麼也沒得到,我認爲IM,它與POST方法的工作,當我搜索的東西我得到這個在URL:
http://example.com/directorio/negocios/buscar?lugar=0&buscador=this+is+an+example&x=0&y=0
我的形式使用select這些值0,1,2,3,...每個而不是我想要的城市的名稱,像這樣的網址:
http://example.com/directorio/negocios/buscar?lugar=City+1&buscador=this+is+an+example
,因爲我不知道什麼是X和Y網址,我想我的問題是控制器和我的條件,因爲我沒有使用$ this-> request->什麼都沒有PARAMS [ 'Negocio'] [ '盧格'];
我希望你能幫助我或指導我該怎麼做,謝謝。
順便說一句,這是調試($ this-> params);
object(CakeRequest) {
params => array(
'plugin' => null,
'controller' => 'negocios',
'action' => 'buscar',
'named' => array(),
'pass' => array()
)
data => array()
query => array(
'lugar' => '0',
'buscador' => 'this is an example',
'x' => '0',
'y' => '0'
)
:
然後,在控制器上添加
$lugar
的條件? – mark嘿@mark我讀了一些關於這個,但即時通訊學習如何使用CakePHP,所以我更喜歡無插件,但謝謝。 –
使用熟練的開發人員或熱門插件的代碼並不令人羞恥(特別是作爲初學者)。這樣你就可以學習如何做對了。擁抱可用的代碼,學習它,以乾淨和良好的代碼學習自己。比烘烤東西更好 - 這通常發生在你不確切知道如何做某些事情時。 PS:「array('controller'=> ...」=>控制器部分在這裏不起作用 - 沒有「url」鍵作爲父節點是無用的。請參閱文檔。形成它自己,你可以省略create()中的整個設置。 – mark