Как передать параметр из формы в Symfony и PHP? - PullRequest
0 голосов
/ 18 февраля 2010

Я пытаюсь реализовать очень простую функцию поиска с помощью PHP в Symfony.

В основном у меня есть форма, которая отправляет запрос, и я хочу получить элементы в базе данных, которые соответствуют запросу.

Если у меня есть таблица User со столбцами first_name и last_name, я хочу иметь возможность получать все элементы, содержащие запрос. Например, если я отправлю «а», я получу все имена, в которых есть «а»:

  • Бэтмен
  • Черная Борода
  • Адам Вест
  • Мистер А

Итак, я знаю, что могу получить все объекты в таблице, имена которых содержат «а», указав критерии:

$c = new Criteria();  
$c->add(UserPeer::FIRST_NAME, '%a%', Criteria::LIKE);  
$users = UserPeer::doSelect($c);  

Есть ли способ передать переменную типа $ query в функцию add ()? Могу ли я получить $ query через форму, а затем передать ее как переменную в функцию add и получить все объекты, которые ее содержат? Я даже собираюсь об этом правильно?

1 Ответ

3 голосов
/ 18 февраля 2010

В вашей форме создайте вход с идентификатором 'query'

<label for="query">Query:</label>
<?php echo input_tag('query') ?>

В действии получите параметр IF, если форма была отправлена, затем передайте его в ваши критерии

if($this->getRequest()->getMethod() == sfRequest::POST)
{
    $query = $this->getRequestParameter('query');

    $c = new Criteria();
    $c->add(UserPeer::FIRST_NAME, '%'.$query.'%', Criteria::LIKE);
    $users = UserPeer::doSelect($c); 

}
...