0

我正在尝试在 symfony 中使用 PHP 实现一个非常简单的搜索功能。

基本上我有一个发布查询的表单,我想检索数据库中与查询匹配的项目。

如果我有一个包含 first_name 和 last_name 列的 User 表,我希望能够检索包含查询的所有项目。例如,如果我提交“a”,我将获得所有包含“a”的名称:

  • 蝙蝠侠
  • 黑胡子
  • 亚当·韦斯特
  • A先生

所以我知道我可以通过指定条件来获取表中名字包含“a”的所有对象:

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

有没有办法可以在 add() 函数中传递像 $query 这样的变量?我可以通过表单获取 $query,然后将其作为变量传递给 add 函数并获取包含它的所有对象吗?我是否以正确的方式去做这件事?

4

1 回答 1

3

在您的表单上创建一个 ID 为“查询”的输入

<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); 

}
于 2010-02-18T08:16:56.327 回答