Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有codeigniter的动态菜单_Php_Codeigniter - Fatal编程技术网

Php 带有codeigniter的动态菜单

Php 带有codeigniter的动态菜单,php,codeigniter,Php,Codeigniter,我正在构建导航菜单,它包含的类别将从数据库中拉出,例如 Home + Product - Ham - Sausage - etc - etc --------Database Schema------ +----+-------------------------+------+ | id | name | show | +----+-----------

我正在构建导航菜单,它包含的类别将从数据库中拉出,例如

Home      + Product   
          - Ham
          - Sausage
          - etc 
          - etc 


--------Database Schema------
+----+-------------------------+------+
| id | name                    | show |
+----+-------------------------+------+
|  1 | ham                     |    1 |
|  2 | sausages                |    1 |
+----+-------------------------+------+
这是我的分类控制器

class Categories extends CI_Controller {

        public function __construct() {
            parent::__construct();

            $this->load->model('category');
        }

        public function index()
        {   
            // 1. pulling data from db assigned to $data
            $data['categories'] = $this->category->get_categories();

            // 2. passing $data to header view to build dynamic navigation menu
            $this->load->view('header',$data);

            // 3. passing $data to the view category to render some other content
            $this->load->view('category',$data);

            // 4. passing $data to footer view to build dynamic footer menu
            $this->load->view('footer',$data);
         }


         public function get($id)
         {
            $this->load->view('header');


     } 
}
------------views/header.php页面(代码如下所示)

-----------问题是 例如,当我从菜单中选择一个类别时,我看到url是这样的

127.0.0.1/cms/categories/get/1这在分类页面上

例如,当我点击时,我将被转移到这个url

127.0.0.1/cms/categories/get/1

但是当我将鼠标悬停在菜单上时,我看到了这个

127.0.0.1/cms/categories/get/categories/get/1这里是导航菜单的问题

各位,控制器是{categories},动作是{get} 每个控制器和动作重复两次

我的问题 1-我在这里做错了什么-

2-如何通过整个应用程序正确共享此动态菜单,我应该将此代码放在何处。请记住,此菜单将从数据库中创建


非常感谢您使用advanced

您只需修复视图即可

<ul>
   <?php foreach($categories as $item): ?>
   <li><a href="<?php echo base_url();?>categories/get/<?php echo $item->id;?>"><?php echo $item->name;?></a></li>
   <?php endforeach; ?>
</ul>
模板文件

<html>
   <head></head>
   <body>
      $this->load->view('header');

      $this->load->view($data['page_name']);

      $this->load->view('footer');
   </body>
</html>

$this->load->view('header');
$this->load->view($data['page_name']);
$this->load->view('footer');
HEADER.PHP文件如下所示

     <div>HEADER CONTENT </div>
    <h1>TESTING</h1>
     <div>Footer CONTENT </div>
标题内容
无论你有什么页面名,PHP文件都是这样的

     <div>HEADER CONTENT </div>
    <h1>TESTING</h1>
     <div>Footer CONTENT </div>
测试
FOOTER.PHP文件如下所示

     <div>HEADER CONTENT </div>
    <h1>TESTING</h1>
     <div>Footer CONTENT </div>
页脚内容
为了使它更易于管理,创建库并在每个类的costructor中调用它,或者您可以自动加载它。加载后,您可以调用该函数并获取数据。。如果你需要一个例子,请告诉我?或者你可以阅读
希望对你有帮助

我为这个动态菜单制作了一个小库。如果有人还在寻找这个答案,希望这对他们有所帮助

您可以从Github获取所有这些代码

https://github.com/hassann201/Egenius_Dynamic_Menu 
谢谢