如何从 Symfony 和 PHP 中的表单传递参数?

发布于 2024-08-22 04:20:05 字数 559 浏览 6 评论 0原文

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

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

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

  • Bat Man
  • Black Beard
  • Adam West
  • Mister A

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

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

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

I am trying to implement a very simple search function with PHP in symfony.

Basically I have a form that posts a query and I want to retrieve the items in the database that match the query.

If I have a User table with columns first_name and last_name, I want to be able to retrieve all items that contain a query. For example, if I submit 'a', I will get all names that have an 'a' in them:

  • Bat Man
  • Black Beard
  • Adam West
  • Mister A

So I know I can get all objects in the table whose first names contain 'a' by specifying criteria:

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

Is there a way I can pass a variable like $query in the add() function? Can I acquire $query via a form and then pass it as a variable in the add function and get all the objects that contain it? Am I even going about this the right way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

叶落知秋 2024-08-29 04:20:05

在您的表单上创建一个带有 id '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); 

}

On your form create an input with the id 'query'

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

In the action get the parameter IF the form has been submitted
then pass it into your criteria

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

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文