数据库Codeigniter 4和Adminlte 3中的活动下拉动态菜单

问题描述

我用codeigniter 4和adminlte 3创建了应用程序,我遇到了数据库中活动下拉边栏动态菜单的问题,当单击菜单时,下拉菜单未打开,但是下拉菜单处于活动状态。当其中的菜单处于活动状态时,如何使下拉菜单始终为打开菜单。这是我的代码

            <?PHP $menu = amenu(); //helper access
        $request = \Config\Services::request();
        $uri = $request->uri;
        foreach ($menu as $a) : ?>
          <?PHP $submenu = aSubMenu($a['menu_id']); //helper access
          if ($submenu) : ?>
            <li class="nav-item has-treeview <?= $uri->getPath() == $a['menu_name'] ? 'menu-open' : '' ?>">
              <a href=" <?= $a['menu_name']; ?>" class="nav-link">
                <i class="nav-icon <?= $a['menu_icon']; ?>"></i>
                <p>
                  <?= $a['menu_name']; ?>
                  <i class="right fas fa-angle-left"></i>
                </p>
              </a>
              <ul class="nav nav-treeview">
                <?PHP foreach ($submenu as $sm) : ?>
                  <li class="nav-item">
                    <a href="<?= $sm['sm_url']; ?>" class="nav-link <?= $sm['sm_title'] == $title ? "active" : "" ?>">
                      <i class="far fa-circle nav-icon"></i>
                      <p><?= $sm['sm_title']; ?></p>
                    </a>
                  </li>
                <?PHP endforeach; ?>
              </ul>
            </li>
          <?PHP else : ?>
            <li class="nav-item has-treeview ">
              <a href=" <?= $a['menu_url']; ?>" class="nav-link <?= $a['menu_name'] == $title ? "active" : "" ?>">
                <i class="nav-icon <?= $a['menu_icon']; ?>"></i>
                <p>
                  <?= $a['menu_name']; ?>
                </p>
              </a>
            <?PHP endif ?>
          <?PHP endforeach; ?>

助手

function amenu(){
$db = \Config\Database::connect();
$session = \Config\Services::session();
$role = $session->get('users_role_id');
$query = "SELECT `menu_id`,`menu_name`,`menu_url`,`menu_icon`,`menu_is_active`
            FROM `users_menu` JOIN `users_access_menu`
            ON `users_menu`.`menu_id`=`users_access_menu`.`am_menu_id`
            WHERE `users_access_menu`.`am_role_id`= $role
            and `menu_is_active`=1
            ORDER BY `users_access_menu`.`am_menu_id` ASC";
return $db->query($query)->getResultArray();
}

function aSubMenu($sm){
$db = \Config\Database::connect();
$query = "SELECT *
            FROM `users_sub_menu`
            WHERE `sm_menu_id`= $sm and `sm_is_active`=1";
return $db->query($query)->getResultArray();
}

menu image

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)