【问题标题】:how to display the multi-level menu in CodeIgniter using twig如何使用 twig 在 CodeIgniter 中显示多级菜单
【发布时间】:2015-10-19 18:10:27
【问题描述】:

对不起,我还是 CodeIgniter 的初学者 我想问一下如何使用 twig 在 CodeIgniter 中显示多级菜单
我想喜欢这个
- 菜单 1.1
- 菜单 1.1.2
--- 菜单 1.1.2.3
-菜单 1.2
--menu1.2.1
我制作了一个多级菜单脚本,但不起作用
来源
menu_controller.php

 function __construct ()
 {

     $this->load->model("blog/menu_model");
     $menu = array();
     $menu = $this->menu_model->get_by(array(
         "hide" => 1,
         "parent" => 0,
     ));
     foreach($menus as $m => $submenu)
     {
         $submenu[$menu[$m]["id"]] = $ci->menu_model->get_by(array(
             "hide" => 1,
             "parent" => $menu[$m]["id"],
         ));
     }
     $ci->twig->set_variable("menu", $menu);
     $ci->twig->set_variable("submenu", $submenu);

 }

MY_Model.php

public function get_by($filter = array(), $limit = 0, $offset = 0, $sort = array(), $debug = 0) {
        $this->db->from("menu");

        if(!empty($filter)) {
            $this->db->where($filter);
        }

        if(!empty($sort)) {
            foreach($sort as $key => $value) {
                $this->db->order_by($key, $value);
            }
        } elseif(!is_array($sort)) {
            $this->session->set_flashdata("warning", "Pengurutan data pada database tidak valid !");
            log_message("error", "Mode pengurutan data pada database tidak valid !");

            return false;
        }

        if($limit > 0) {
            $this->db->limit($limit, $offset);
        }

        if($debug) {
            var_dump($this->db->_compile_select());
        }

        return $this->db->get()->result_array();
    }

menu_view.php

<ul class = "main-menu">
{% For menus in menu%}
{% If menus.position == "mainmenu"%}
<li style = "background: # 264c84; color: # 264c84;"> <a href="{{ menus.muri menus.name }}"> {{}} {% if submenu [menus.id] | length> 0%} <span> & nbsp; </ span> {% endif%} </a>
{% If submenu [menus.id] | length> 0%}
<ul class = "sub-menu">
{% For the sub in the submenu [menus.id]%}
<li> <a href="{{ sub.muri sub.name }}"> {{}} </a> </ li>
{% Endfor%}
</ ul>
{% Endif%}
</ li>
{% Endif%}
{% Endfor%}
</ ul>

screen shot menu

My Database

菜单多级 3 无法显示

【问题讨论】:

  • 您遇到了什么错误?修复这些空间。删除那些。在这里查看CodeIgniter coding standard 是什么。
  • 菜单三级无法显示
  • 数据不足。您必须在此处修复语法。空间错误太多。例如:$ menu = array (); 永远不会工作。另外,如果您需要某人的帮助,您可能需要显示模型代码和表结构。
  • 我附上型号代码已经让你再看一遍

标签: php codeigniter menu twig multi-level


【解决方案1】:

PHP 代码

function __construct()
{

    $this->load->model("blog/menu_model ");
    $menu = array();
    $menu = $this->menu_model->get_by(array(
        "hide" => 1,
        "parent" => 0,
    ));
    foreach ($menus as $m => $submenu)
    {
        $submenu [$menu [$m] ["id"]] = $ci->menu_model->get_by (array (
        "hide" => 1,
        "parent" => $menu [$m] ["id"],
        ));
        $menu[$m]['submenu'] = $submenu;
    }
    $ci->twig->set_variable ("menu", $menu);

}

树枝代码

<ul class = "main-menu">
    {% For menus in menu%}
    {% If menus.position == "mainmenu"%}
    <li> 
        <a href="{{ menus.muri menus.name }}"> {{}} {% if menu['submenu'] | length> 0 %} <span> & nbsp; </ span> {% endif%} </a>
        {% If menu['submenu'] | length> 0%}
        <ul class = "sub-menu">
            {% For sub in  menu['submenu'] %}
            <li> <a href="{{ sub.muri sub.name }}"> {{sub.name}} </a> </li>
                {% Endfor %}
             </ul>
        {% Endif%}
    </li>
    {% Endif%}
    {% Endfor%}
</ul>

【讨论】:

  • 甚至所有菜单级别都无法显示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多