Поиск с использованием cakePHP - PullRequest
1 голос
/ 09 марта 2011

Прежде всего, у меня есть модель user.php, которая подключается к таблице пользователей.У меня есть контроллер UsersController.

Я создал представление для поиска: (имя файла: index.ctp)

<p><?php
echo $this->Form->create("Users", array('action' => 'search'));
echo $this->Form->input("Search Label", array('action' => 'search', 'name' => 'txt_search'));
echo $this->Form->end("Search");
?></p>

И это перейдет к функции UsersController / search ()

function search() {
  if (!empty($this->data))
  {
    $name = $this->data['Users']['txt_search'];
    $conditions = array("User.name Like " => "%$name%");
    $result = $this->User->find('all', array('conditions'=> $conditions));
    $this->set('users', $result);
  }
}

И это загрузит search.ctp

Моя проблема в том, что когда я использую переменную $ users в search.ctp, она выдает ошибку Undefined variable: Users [APP \ views \ users \search.ctp, строка 10].

Я не понимаю.Пожалуйста помоги.Спасибо!

1 Ответ

2 голосов
/ 09 марта 2011

Вы указываете пользовательское имя для своего ввода, а затем вы проверяете $this->data, которое будет пустым, поскольку ваш ввод не имеет правильного имени (и не заполняется автоматически в $this->data).Используйте следующее.

echo $ this-> Form-> input ("txt_search", array ('label' => 'Search Label'));

Пара вещей, на которые вы должны смотреть.

  1. Установите значение по умолчанию для вашей переменной users, чтобы ваша страница не разрывалась, если они запрашивают ее напрямую.Возьмите $result = array(); вверху и выполните проверку empty() в search.ctp

  2. Почему вы указали атрибут действия в своих входных данных?Тебе это не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...