Session Symfony2,doctrine2,会话,搜索页面分页的最佳方式

Session Symfony2,doctrine2,会话,搜索页面分页的最佳方式,session,symfony,search,doctrine-orm,Session,Symfony,Search,Doctrine Orm,让我们假设我们有简单的数据,并希望对其进行分页。这并不难做到,简单的-用页码获取var,用偏移量获取其他原则将允许我们以简单的方式完成,但它在搜索页面中应该是什么样子?让我解释一下 例如,我们有一个带有/search url的简单路由。在那里我们有搜索表格。当使用输入字符串时,我们将用户在同一页面上发布方法,并将得到结果。很简单,但如果我们在这里添加分页,那么存储“输入字符串”就会出现问题 如果我们将搜索查询存储在会话中,它将是解决方案,但。。。不是。为什么?用户输入搜索字符串-通过分页获取结果

让我们假设我们有简单的数据,并希望对其进行分页。这并不难做到,简单的-用页码获取var,用偏移量获取其他原则将允许我们以简单的方式完成,但它在搜索页面中应该是什么样子?让我解释一下

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

如果我们将搜索查询存储在会话中,它将是解决方案,但。。。不是。为什么?用户输入搜索字符串-通过分页获取结果(此处搜索字符串已在会话中),然后离开页面(或关闭浏览器,或转到其他页面)。当他从会话返回数据时,将向他显示“旧查询的结果”


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

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

以及如何在分页中返回/前进(使用浏览器的按钮)?您将始终收到一个警报框。并且您不能共享/为搜索查询url添加书签

顺便说一句,回答你的问题,会话和隐藏的输入字段将是最好的选择。您还可以使用get和post的组合


为什么要使用
POST
而不是
GET
作为搜索表单?也许我误解了……不幸的是我有这样的说明。因此,我无法将_getvar用于搜索字符串:(不仅仅是最初的还是整体的?因此,即使分页链接也不能包含搜索查询?我们可以添加到$_getsearch string,但在这种情况下,我们应该有特定的方法来转义这个搜索字符串并重定向到我们的主搜索页面,在那里应用过滤器。这是非常糟糕的做法。