我有一个/付款接口用户应当能够通过滤的价格范围内,银行和其他的东西。这些过滤器选择标准箱。当我提出的过滤器的形式,所有的岗位数据的数据转到另一种方法称为付款/搜索。这一方法进行验证,可以节省后的价值观进一届会议flashdata和重定向用户回给/支付通过flashdata的名字,通过网址。

所以我的标准分页的链接,没有过滤器正是这样的:

payments/index/20/
payments/index/40/
payments/index/60/

如果你提交过滤器的形式,返回URL:

payments/index/0/b48c7cbd5489129a337b0a24f830fd93

这工作只是伟大的。如果我改变零用于别的东西,它分页。唯一的问题,但是, << 1 2 3 4>>网页的链接不会让哈希后页数偏移。笨产生的页面的链接忽略,额外uri段。

我uri_segment config是已经设定为3:

$config['uri_segment'] = 3;

我不能设置uri_segment至4个,因为那散可能会或可能不存在。任何想法我如何能解决这个?它是强制性的CI为具有抵消作为最后一段在uri?也许我尝试一种不正确做法,因此我所有的耳朵。

谢谢你,伙计。

编辑:为什么我穿的flashdata名通过uri你可能要问吗?因为它允许用户打开几个浏览器的标签和做不同的搜索每一个选项。对于每个筛选你做的,一个新的flashdata var产生。

有帮助吗?

解决方案

只是为了用户谷歌的到来,这里是解决方案:

在分页配置数组,我改变BASE_URL此:

$config['base_url'] = site_url('payments/index/' . $this->uri->segment(3) . '/' . $this->uri->segment(4));

其中链段(3)是我的偏置号和段(4)是哈希值。因此,在这种情况下,散列可以或可以不存在,并且分页仍然可以工作。

另一种方法可能是这样的:如果你去付款,并且在URL中有flashdata ID,它会将用户重定向到付款/搜索和创建空滤器空数组。然后重定向到付款/ _NEW_FLASHDATA_ID_HERE_。这样,URL将始终具有URL中的flashdata ID,你可以有分页过去URI段照常偏移。

其他提示

为什么没有设置散列作为会话内容吗?

$this->session->set_userdata('session_flashdata_hash', $hash);

哈希然后将可用,直到取消它

$this->session->unset_userdata('session_flashdata_hash');

或者直到你破坏了会议。

$this->session->sess_destroy();

你为什么不检查,看看如果哈希存在,并设置 uri_segment 基于这个?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top