CakePHP 2.5 Basic Search другой контроллер
Я пишу приложение для веб-сайта на CakePHP, у меня есть требование иметь окно поиска на главной странице (pages/home.ctp, PagesController), которое ищет контент со своей страницы событий (Events/index.ctp, EventsController).
Я хочу, чтобы поиск просматривал все поля таблицы событий, но имел только одно поле ввода.
Когда пользователь нажимает кнопку поиска или нажимает кнопку ввода, его следует перенаправить на страницу Events/Index.ctp, где перечислены все события.
- Это возможно? если так, могу ли я получить некоторые указатели?
- Если нет, то как мне достичь чего-то подобного?
Спасибо Стив
1 ответ
Ваш фактический поиск должен быть выполнен в модели, так как это слой, который вы используете для извлечения данных. Так что если вы ищете события, вы поставите search()
метод в вашей модели событий.
Затем, в любом контроллере, вы можете получить доступ к этому search()
метод. В зависимости от того, какой контроллер вы делаете, зависит от любого количества вещей, которые только вы можете принять во внимание.
Если вы находитесь в контроллере событий:
$this->Event->search($postData);
Если вы находитесь в другом (но связанном) контроллере:
$this->User->Event->search($postData);
Если вы находитесь в другом (не связанном) контроллере:
$this->loadModel('Event');
$this->Event->search($postData);
Исходя из вашего описания, звучит так, как будто вы просто хотите разместить свою форму на контроллере событий. index()
метод, в котором можно проверить, был ли отправлен поисковый запрос, и, если он был, запустите поиск.