我正在构建一个图库,它将使用URI来定义一组过滤器设置。CodeIgniter的ruri_to_assoc()
非常适合我的大多数设置,因为它们就像key=〉value一样简单。然而,一个值(标记)可以包含我希望匹配的多个值。
由于ruri_to_assoc()
使用键/瓦尔对,我如何将数组设置为url中的键?例如:
/天/365/订单/最旧/标签/汽车/标签/红色/标签/野马
现在,看起来我必须分解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中有什么可以为我做到这一点吗?
1条答案
按热度按时间kjthegm61#
我们只需要确保uri_to_assoc在构建数组时不会覆盖已经存在的键。
在 * 应用程序/核心 * 中创建MY_URI.php:
然后在你的控制器里,什么也没改变:
下面是我测试后得到的结果: