繁体   English   中英

使用symfony2在会话中保存过滤器数据

Save filter data in session using symfony2

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个问题问你。 我在页面中有一个过滤器,可以按价格对产品进行排序。 如果我过滤产品,例如我有3页,那么当我切换到第2页时,过滤器就会消失。 我需要在会话中保存此数据吗? 或存在其他解决方案? 我的控制器:

 if ($form->isValid()) {
        $aFilter['iMinPrice'] = $form["min_price"]->getData();
        $aFilter['iMaxPrice'] = $form["max_price"]->getData();
    }
    //Search products
    $aProducts          = $repositoryProduct->getProductsOrderByDateDesc($id,null,$aFilter);

    $paginator  = $this->get('knp_paginator');
    $pagination = $paginator->paginate(
        $aProducts,
        $page,
        3
    );

    //Send data to view
    return $this->render('ShopDesktopBundle:Category:category.html.twig',array(
        'category'          => $category,
        'pagination'        => $pagination,
        'form' => $form->createView()
    ));

我的资料库:

if(!empty($aFilter)){
        if(isset($aFilter['iMinPrice'])){
            $qb->andWhere('p.product_price >= :price_min')
                ->setParameter('price_min',$aFilter['iMinPrice']);
        }
        if(isset($aFilter['iMaxPrice'])){
            $qb->andWhere('p.product_price <= :price_max')
                ->setParameter('price_max',$aFilter['iMaxPrice']);
        }
    }

和我的看法:

<form action="{{ path('show_product_category',{ 'id':category.getId(), 'name':category.getCategoryLink() }) }}" method="post" {{ form_enctype(form) }}>
<div class="accordion-inner">
     {{ form_widget(form.min_price) }}
     {{ form_widget(form.max_price) }}
</div>
</form>
{{ knp_pagination_render(pagination, null, {}, {'style': 'pager', 'prev_label': '← Older', 'next_label': 'Newer →'}) }}

我的路线:

show_product_category:
path:     /{id}/{name}/{page}
defaults: { _controller: ShopDesktopBundle:Category:showCategory, page: 1}
requirements:
    id:  \d+
    page: \d+
    _method:  GET|POST

请帮帮我! 提前谢谢!!! 有什么建议请如何将查询参数附加到链接?

1 个回复

您可以尝试将所有GET参数附加到分页的所有链接。 这样,您每次切换页面时都会拥有它们。

使用KPNPaginator,您可以将请求查询传递给分页渲染器,如下所示:

{{ knp_pagination_render(pagination, null, _requestQuery, {'style': 'pager', 'prev_label': '← Older', 'next_label': 'Newer →'}) }}

实际上,KPN文档指出:

默认情况下,触发render方法时,分页将使用提供的标准参数来渲染模板:

  • pagination parameters ,例如范围内的页面,当前页面等。
  • route用于生成页面,对URL进行排序
  • request_query ,其中包含所有GET请求参数
  • extra分页模板参数

除了分页参数外,其他参数可以修改或适应某些用例。 通常有可能,如果默认值未正确匹配(由于在子请求中呈现),则可能需要设置路由。 或添加其他查询或视图参数。

2 symfony2使用过滤器丢失了表单参数

我需要使用过滤器创建下拉菜单,但是如果添加查询构建器,则请求将忽略发布的值。 在我的表单类型中,差异就是这个。 还有另一只w,没有过滤器 谢谢你的帮助。 编辑:这是处理数据的控制器 ...

3 使用Twig作为Symfony2中JavaScript的Assetic过滤器

有没有办法使用Twig作为Assetic过滤器? 我想要做的是让Twig将我的JavaScript文件解析为Twig模板,然后将它们传递给Assetic,以便它们在生产中得到组合和缩小。 你可能会想到我为什么要这样做,所以让我跳到一个例子。 我正在使用JavaScript制作 ...

4 在许多关系中使用symfony2过滤器

我有一个名为User的实体,该实体具有以下内容: 我需要进行查询,使我的用户朋友的姓名包含字母“ a”和姓氏字母“ b”(例如,这些字母是在Web表单的过滤器上指定的)。 我知道我可以使用getFriends()方法访问注册用户的所有朋友,但是...如何过滤这些朋友? ...

5 如何使用Symfony2实现搜索过滤器表单

我有一个要在页面上显示的项目列表,上面有一个搜索表单来过滤这些项目,就像在任何通常的后端一样。 问题是我不知道如何将搜索条件添加到带有连接的现有查询中...这就是我所拥有的: 我在与实体关联的存储库上使用特定方法来在查询上添加联接(以避免许多查询)。 控制器看起来像这样: 存储 ...

6 使用会话中保存的过滤器选项进行索引重定向

所以我目前拥有的是一个普通的资源路由,通常带有索引、创建、存储、编辑、更新。 在索引中,我有一些过滤选项可以过滤条目。 足够简单。 我想要的是过滤器选项被保存,当你创建、更新或删除它时,当你被重定向回索引时,你的过滤器选项仍然被保存和过滤。 我遇到的问题是我不想进行不必要的重定向。 过滤器采用一种形 ...

8 Symfony2 中的 Twig CamelCase 过滤器

所以我对 Symfony2 camelize ,我正在尝试在树枝模板中使用camelize过滤器。 但是,当我请求该页面时,我收到一条错误消息,指出过滤器不存在: ::base.html.twig 中不存在过滤器“camelize” 这是我的模板文件中的一行: {{ '你好世界' ...

9 Symfony2验证过滤器

在我的Symfony 2应用程序中,我需要在将输入传递给验证之前过滤输入[1],但是,我似乎无法在Symfony中找到任何系统来执行此操作。 我寻找的过滤类型是例如能够在验证之前过滤特定字段中的破折号。 例如,用户可以输入123-123但唯一可接受的值是123123 。 就像我可以使用 ...

10 Symfony2中过滤器的形式?

我有一个链接列表,我想按类别过滤它们。 在我看来,我对带有选择的表单进行了硬编码。 现在,在我的控制器中,我想检查“类别” GET参数。 如果它&gt; 0,则使用该类别ID来获取所有链接。 您知道这样做的好方法吗? 这是一种适当的方式,还是这不是symfony的方式 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM