Я хочу реализовать форму поиска, так что я сделал это до сих пор:
index.ctp
* * 1004
<?php
$base_url = array('controller' => 'Customers', 'action' => 'index');
echo $this->Form->create('Filter',array('url' => $base_url, 'class' => 'filter'));
// Add a basic search
echo $this->Form->input('search', array('label' => false, 'placeholder' => "Name or surname..."));
echo $this->Form->submit("Search");
echo $this->Form->end();
?>
CustomersController.php
public function index()
{
$conditions = array();
debug($this->request->getData()); //form field is not passed
debug($this->request->getData('search')); //form field is not passed
$conditions['OR'] = array(
array('Customers.name LIKE' => '%' . $this->request->getData('search') . '%'),
array('Customers.surname LIKE' => '%' . $this->request->getData('search') . '%')
);
$this->Customers->recursive = 0;
$this->paginate = array(
'limit' => 8,
'conditions' => $conditions
);
$this->set('customers', $this->paginate());
}
Но значение поля поиска не передается в controller
. Что не так?
EDIT
Что-то не так с кодом CustomersController.php
, потому что если заменить $base_url
в index.ctp
на другой контроллер, тогда я смогу получить данные правильно
НО ЭТО РАБОТАЕТ
index.ctp
<div class="Search">
<?php
// The base url is the url where we'll pass the filter parameters
$base_url = array('controller' => 'ExpiringServices', 'action' => 'index');
echo $this->Form->create('Filter',array('url' => $base_url, 'class' => 'filter'));
// Add a basic search
echo $this->Form->control('search', array('label' => false, 'placeholder' => "Name or surname..."));
echo $this->Form->submit("Search");
echo $this->Form->end();
?>
</div>
ExpiringServicesController.php
public function index()
{
$conn = ConnectionManager::get('default');
debug($this->request->getData('search'));
//.....
}
НОВОЕ РЕДАКТИРОВАНИЕ (ВРЕМЕННОЕ РЕШЕНИЕ)
Странно, если я изменюсь:
$base_url = array('controller' => 'Customers', 'action' => 'index');
К
$base_url = array('controller' => 'Customers', 'action' => 'index',123);
Это работает! но почему ???