我已经尝试了很长时间了。下面的函数仅返回1个结果,而应返回3个结果。
我已经检查了数据库,数据库在循环罚款中返回结果,这意味着数据库部分正常,它在函数中出现错误的地方。
//function that generates the URI from the database
function generate_uri( $menu_id = 0, $array = '' ){
global $db;
$array = array();
if( !empty($menu_id) ){
$db->where('menu_id', $menu_id);
$menu = $db->ObjectBuilder()->getOne('menu');
$menu_parent = $menu->menu_parent;
$menu_slug = $menu->menu_slug;
$array[] = $menu_slug;
generate_uri($menu_parent, $array);
}
return $array;
}
//Calling the function with a parameter of 3
var_dump(generate_uri(3));
输出
array(1) { [0]=> string(15) "photo-gallery-1" }
应该退货
array(1) { [0]=> string(15) "photo-gallery-1" [1]=> string(12) "photo-gallery" [2]=> string(9) "resources"}
每次调用该函数时,您都将其设置为$array
空:$array = array();
另一个问题是您没有在if语句中获得该函数的返回。更改此行:
generate_uri($menu_parent, $array);
对此:
$array = generate_uri($menu_parent, $array);
因此,该函数应如下所示:
function generate_uri($menu_id = 0, $array = '') {
global $db;
if (!empty($menu_id)) {
$db->where('menu_id', $menu_id);
$menu = $db->ObjectBuilder()->getOne('menu');
$menu_parent = $menu->menu_parent;
$menu_slug = $menu->menu_slug;
$array[] = $menu_slug;
$array = generate_uri($menu_parent, $array);
}
return $array;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句