CodeIgniter动态菜单加载器无法正常工作

时间:2013-09-30 15:16:53

标签: php mysql codeigniter

我是CodeIgniter的首发。我正在Ci中创建一个小应用程序,从数据库加载我的菜单。

  1. 数据库由3个字段组成(id,menu_Name,menu_link)

  2. 我在Libraries中创建了一个函数来从db

  3. 获取数据
  4. 通过加载库

  5. 创建控制器

    附上我创建的代码

    代码库 文件夹结构:::: ---- libraries / Functions.php

    function getMenus()
    {
        $arrRow =array();
        $sql    = "select * from tbl_menus ";
        $res    =mysql_query($sql); 
        if(mysql_num_rows($res) >0) {
            while($row= mysql_fetch_object($res)){
                    $arrRow[]   =$row;
            }
    
        }
    
    } 
    

    控制器代码

        public function index()
    {
       $val_menu = $this->input->post('menu_Name');
       $val_link= $this->input->post('menu_link');
       $query=$this->db->get_where('tbl_menus',array('menu_Name'=>$val_menu,'menu_link'=>$val_link));
    
       if ($query->num_rows() > 0)
       {
        $arrRow=$query->row_array();
        $data=$arrRow;
       }
        $data=array('menu_Name'=>$data,'menu_link'=>$data);
        $this->load->helper('url');
        $this->load->database();
    
        $this->load->view('Header');  
        $this->load->view('SideMenu',$data);     
        $this->load->view('Pages/MainPage',$data);   
        $this->load->view("Footer");  
    }
    

    我的观看代码

    <?php
    
    $arrMenus=array();
    $arrMenus   =$this->functions->getMenus();
    
    ?>
    
    <div class="container">
    
    <div class="sidebar1">
    
    
    
    <?php if(count($arrMenus) >0) {
    foreach($arrMenus as $key_menu=>$val_menu) {
    $menu_link  =$val_menu['menu_link'];?> 
    <ul class="nav">
    //Before Edit
    <li><a href="<?=site_url()?>/<?=$menu_link?>" class="lnk"><?=$val_menu['menu_name']?>
    //After Edit
    <li><a href="<?=site_url()?>/<?php echo $menu_link?>" class="lnk"><?php echo  $val_menu['menu_name']?></a></li>  
    </a></li>
    </ul>
    

    Print_r()结果

    Array ( [menuId] => 1 [menu_Name] => UserHome [menu_link] => Pages/MainPage ) 
    

    视图无法正常运行..视图页面未显示菜单...所以我在控制器内部使用了print_r($ arrMenus); ..显示数据...但菜单链接留空。视图页面中的Print_r($ arrMenus)显示转换问题的错误

1 个答案:

答案 0 :(得分:0)

试试这个

  foreach($arrMenus->result() as $key_menu=>$val_menu)