【发布时间】:2015-02-12 13:56:14
【问题描述】:
我正在构建一个库,它将使用 URI 来定义一组过滤器设置。 Codeingiter 的 ruri_to_assoc() 对我的大多数设置都很有效,因为它们就像 key=>value 一样简单。但是,一个值(标签)可以包含多个我希望匹配的值。
当 ruri_to_assoc() 使用键/值配对时,我如何将数组设置为 url 中的键?示例:
/days/365/order/oldest/tag/car/tag/red/tag/mustang
目前,看来我将不得不自己分解 uri_string() 并循环遍历它。像这样:
$test_fil = explode('/',$this->uri->uri_string());
unset($test_fil[0]);
$val = 'key';
foreach($test_fil as $fkey=>$fval){
if($fval=='tags'){
$val = 'tag';
$new_filter['tags'] = '';
}
else{
if($val == 'key'){
$new_filter[$fval] = '';
$val = 'val';
$current_key = $fval;
}
elseif($val == 'val'){
$new_filter[$current_key] = $fval;
$val = 'key';
}
else{
$new_filter['tags'][] = $fval;
}
}
}
CI 中有什么东西可以为我做到这一点吗?感谢您的帮助!
【问题讨论】:
-
你如何创建你的网址
/days/365/order/oldest/tag/car/tag/red/tag/mustang? -
@Simo 我不太明白你的意思。这是我们决定使用的 URL 样式。我们有一个带有方法的控制器,然后我们调用 ruri_to_assoc() 来分配键/值对。
-
我的意思是:如果你可以像这样使用标签作为数组来更改你的网址:
/days/365/order/oldest/tag[]/car/tag[]/red/tag[]/mustang -
@Simo 虽然我可以随意更改我的网址,但括号并不是最用户友好的。此外,看起来 CI 不喜欢 url 中的它们。
-
你只是想合并所有由 ruri_to_assoc() 生成的名为 "tag" 的键,对吧?
标签: php codeigniter url codeigniter-2