来自codeigniter库文件夹的动态菜单可以';不要回来


Dynamic menu from codeigniter library folder can't be return

我在codeigniter框架的库文件夹中创建了一个动态菜单。

class Left_menu {
private $ci; 
function __construct()
{
    $this->ci =& get_instance();    // get a reference to CodeIgniter.
}
function get_company () 
    {
         $html_out = '';
         $company = $this->ci->db->query("select * from perusahaan");
         $html_out  .= "<ul class='sub_list'>";
         foreach ($company->result() as $row)
            {
                $id = $row->id; 
                $name = $row->name; 
                $location = $row->location;
                    $html_out .= "<a href='".site_url("perusahaan_controller/detailPersahaan/".$id."")."'>";
                    $html_out .= "<li>".$name."</li>";
                    $html_out .= "</a>";
            }
         $html_out  .= "</ul>";
         $html = $html_out;
         //print_r ($html); 
         return $html;
    }
 }

在我看来,

<?php $this->left_menu->get_company(); ?>                   

但是,它根本不显示菜单。如果我只打印//print_r ($html);,它就可以了,奇怪的是,它按照我想要返回的方式打印菜单。(看起来它把return函数变成了print_r)。

您不需要为此创建库。

只需使用Model获取数据,并将侧边栏插入当前控制器即可。

您可以通过创建一个名为侧边栏的部分视图来实现这一点,并将模型中的一些数据传递给它,然后将其插入到当前视图中。

控制器

class Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
    public function index()
    {
        $this->load->model('mymodel');
        $data = $this->MyModel->get_data();
        // call the sidebar view and pass it some data from model
        // at this point the view is in the buffer so it can be manipulated before final output.
        $sidebar = $this->load->view('sidebar', array(
            'data'  =>  $data
        ), true);
        return $this->load->view('index', array(
            'sidebar'  =>  $sidebar
        ));        
    }
}

型号

class MyModel extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
    }
    public function get_data()
    {
        $query = $this->db->get('perusahaan');
        return ( $query->num_rows() > 0 ) ? $query->result() : false;
    }
}

视图/侧边栏

<ul class="sublist">
    <?php foreach($data as $_data): ?>
        <li id="<?php echo $_data->id;?>">
            <a href="<?php echo ".site_url('perusahaan_controller/detailPersahaan/')."/".$_data->id.""><?php echo xss_clean($_data->name);?></a>
        </li>
    <?php foreach; ?>
</ul>

视图/索引

<aside class="sidebar">
    <?php echo $sidebar; ?>
</aside>
<div>
    //... content
</div>