问题描述
我用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();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)