失去URI段时分散与笨
-
26-09-2019 - |
题
我有一个/付款接口用户应当能够通过滤的价格范围内,银行和其他的东西。这些过滤器选择标准箱。当我提出的过滤器的形式,所有的岗位数据的数据转到另一种方法称为付款/搜索。这一方法进行验证,可以节省后的价值观进一届会议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
基于这个?