【问题标题】:Symfony2, doctrine2, session, best way to paginate search pageSymfony2,教义2,会话,分页搜索页面的最佳方式
【发布时间】:2023-03-19 19:57:01
【问题描述】:

假设我们有简单的数据并想要对其进行分页。这并不难,简单的 _GET var 与页码其他教义与偏移量将允许我们以简单的方式做到这一点,但是它在搜索页面中应该是什么样子?让我解释一下。

例如,我们有带有 /search url 的简单路由。我们有搜索表格的地方。当使用输入字符串时,我们在同一页面上使用 POST 方法并会得到结果。很简单,但是如果我们在这里添加分页,那么存储“输入字符串”就会出现问题。

如果我们将搜索查询存储在会话中,这将是解决方案,但......它不是。为什么?用户输入搜索字符串 - 在离开页面(或关闭浏览器,或离开到另一个页面)之后获得分页结果(这里搜索字符串已经在会话中)。当他从会话中返回数据时,将显示“旧查询的结果”...

所以问题是,这种情况的最佳做法是什么?我想要简单的搜索查询 + 分页,但如果用户离开页面 - 清除结果。

【问题讨论】:

  • 您为什么使用POST 而不是GET 作为搜索表单?可能我理解错了......
  • 不幸的是我有这样的规范。所以我不能使用 _GET var 搜索字符串。 :(
  • 只是最初或整体上没有?这样即使分页链接也不能包含搜索查询?
  • 我们可以添加到 $_GET 搜索字符串,但在这种情况下,我们应该有特定的方法来转义这个搜索字符串并重定向到我们的主搜索页面,其中将应用过滤器。这真的很糟糕,非常糟糕,练习。

标签: session symfony search doctrine-orm


【解决方案1】:

使用 POST 而不是 GET 进行搜索查询有点不寻常,也不是很安全。由于搜索查询操作是只读的,您应该使用 GET 来访问/获取数据。 POST 用于更新或创建资源。

您将如何在分页中后退/前进(使用浏览器的按钮)?您总是会收到一个警报框。并且您不能共享/收藏搜索查询 url。

顺便说一句,回答您的问题、会话和隐藏的输入字段将是要走的路。您还可以使用 get 和 post 的组合

When should I use GET or POST method? What's the difference between them?

【讨论】:

    猜你喜欢
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多