|
为了获取导航信息,我制作了一个连接模型地辅助函数
PHP复制代码
function get_nav ($info){
$result = array();
if(is_array($info)){
foreach($info as $key=>$value){
if($value == 'index')
$result[] = array('name'=>'首页','url'=> site_url () );
elseif($value == 'cakes')
$result[] = array('name'=>'蛋糕','url'=> site_url ('cakes'));
elseif($value == 'about')
$result[] = array('name'=>'关于我们','url'=> site_url ('about'));
elseif($value == 'contact')
$result[] = array('name'=>'联系我们','url'=> site_url ('contact'));
elseif(is_numeric($value)){
$CI = &get_instance ();
if($key == 'category'){
$CI->load->model('catogory_model','C_M',TRUE);
$result[] = $CI->C_M->get_nav($value);
}
//问题出现在这里
elseif($key == 'product'){
$CI->load->model('product_model','P_M',TRUE);
$P = $CI->P_M->get_nav($value);
$result[] = $P['category'];
$result[] = $P['product'];
}
else ;
}
else ;
}
return $result;
}
else{
fb ('导航函数参数必须是数组',FirePHP ::TRACE);
return ;
}
}
复制代码
而当我地控制器则是这样的
PHP复制代码
//可以成功连接模型并显示数据
fb (get_nav (array('product'=>1) ) );
//这里控制器载入了和辅助函数相同的模型
$this->load->model('product_model','P_M');
$info = array(
'menu_on'=>2,
'global_adsence'=>$this->AS_M->get_adsence(2),
'category'=>$this->C_M->get_all(),
'product'=>$this->P_M->product_show($P_id),
//注意:这里系统出现报错
'nav'=>get_nav (array('product'=>1) )
);
$this->load->view('header',$info);
$this->load->view('cake_info');
$this->load->view('footer');
复制代码
系统报错
A PHP Error was encounteredSeverity: Notice
Message: Undefined property: Product_modelP_M
Filename: helpers/url_helper.php
Line Number: 651
有个投机取巧的方法是,只需要把get_nav(array('product'=>1)的变量带入到info['nav']数组即可。
问题的情况是:
当get_nav(array('product'=>1) )这个函数一旦在$this->load->model('product_model','P_M');之后出现就无法模型,无论你改变命名(P_M),或者加载CI复本 $CI= get_instance()
不知道哪位大侠可以解答一下
为什么在当控制器载入了与辅助函数已经载入过的辅助函数之后,就会导致辅助函数连接模型失败
|
|