FastAdmin后台菜单怎么添加角标?
比如我们要实现这么一个需求,当有用户或订单需要审核时,在后台菜单上添加一个数字角标,用于提醒管理员去审核,该怎么做呢?
有两种实现方式。
方式1
后端控制器与JS相结合,在控制器的index
方法中,返回一个badge
的参数,示例如下
$result = array("total" => $total, "badge" => $badge, "rows" => $list);
return json($result);
在控制器对应的JS文件中,添加相应的显示代码,位于columns
下方
onLoadSuccess: function (data) {
Backend.api.sidebar({
user/user': [data.badge, 'orange', 'badge']
});
}
这里我们指定角标颜色为橙色。
这种方式有个缺点,必须位于当前页面时角标才会显示。
方式2
采用服务端直接渲染的方式,打开application/admin/controller/Index.php
文件,找到如下代码
//左侧菜单
list($menulist, $navlist, $fixedmenu, $referermenu) = $this->auth->getSidebar([
'dashboard' => 'hot',
'addon' => ['new', 'red', 'badge'],
'auth/rule' => __('Menu'),
], $this->view->site['fixedpage']);
把想要显示的菜单加进去即可,示例:
//左侧菜单
list($menulist, $navlist, $fixedmenu, $referermenu) = $this->auth->getSidebar([
'dashboard' => 'hot',
'addon' => ['new', 'red', 'badge'],
'auth/rule' => __('Menu'),
'user/user' => [2, 'red', 'badge']
], $this->view->site['fixedpage']);
这种方式的好处是一进后台角标就会显示,每次刷新页面时角标也会刷新。建议两种方式同时使用。