Я предполагаю, что у вас возникли проблемы, потому что поля формы являются необязательными, и вы не знаете, как построить conditions
для вашей находки.Вот простой способ:
$conditions = array();
if (!empty($this->data['User']['zip'])) {
$conditions[] = array('User.zip' => $this->data['User']['zip']);
}
if (!empty($this->data['User']['street'])) {
$conditions[] = array("User.street LIKE '%{$this->data['User']['street']}%'");
}
... etc
Наконец, вы можете добавить условия либо строго :
$this->User->find('all', array('conditions' => $conditions));
, либо свободно :
$this->User->find('all', array('conditions' => array('or' => $conditions)));
Вторая форма помещает операнд ИЛИ между вашими условиями WHERE, чтобы он возвращал любое конкретное совпадение.Начните отсюда и медленно увеличивайте сложность поиска.