我使用从这里获得的 auto CodeIgniter 2.1 + Auto Crumb helper
例如,我编辑联系页面的链接是http://localhost/caster/contact/edit_contact/13/213bcf
13是联系人 id,213bcf是加密的联系人id,以防止用户仅从 url 更改联系人 id。
所以我的面包屑现在显示无效的网址,如上图所示。所需的面包屑是Contact \ Edit Contact
. 如何解决或防止此问题?
谢谢。
我使用从这里获得的 auto CodeIgniter 2.1 + Auto Crumb helper
例如,我编辑联系页面的链接是http://localhost/caster/contact/edit_contact/13/213bcf
13是联系人 id,213bcf是加密的联系人id,以防止用户仅从 url 更改联系人 id。
所以我的面包屑现在显示无效的网址,如上图所示。所需的面包屑是Contact \ Edit Contact
. 如何解决或防止此问题?
谢谢。
目前,autocrumb 助手存在一个错误(或者可能是设计使然,但这样做似乎很愚蠢),这意味着除非特定段中有连字符 ( -
) 或下划线 ( _
),否则不会运行正则表达式模式替换它。
通常在这里使用 config 变量$config['strip_regexp']
就足以满足您的要求,但唉,在这种情况下并非如此。
在这种情况下(假设 URL 末尾没有更多参数),您可以执行以下操作:
$ci = get_instance();
if( preg_match( '#\d+/[a-z0-9]+$#i', $ci->uri->uri_string() ) ) {
$config['exclude_segment'] = $config['exclude_segment'] + array(
$total = $ci->uri->total_segments(),
$total-1
);
}
这应该插入到文件的正下方$config['exclude_segment'] = array();
,该app/config/breadcrumb.php
文件基本上说如果 URL 以numbers/letter-number-pattern
然后从面包屑中删除 URL 的最后两个部分。
它不太理想,但需要先修复该错误。显然,这是假设您的 URL 结构不会改变。您可以在 中添加其他条件,if
以确保它仅出现在您想要的页面上。