/** * 获取根据parent_id和菜单id权限url数据 * * @param boolean $isSuper 是否为超级用户 * @param array $menuIdList 菜单id列表 * @param int $parentId 父级id * @param array|string $condition 条件 * @param array $params 条件参数 * @param string $order 排序 * @return array */ public static function getUrlsByParentId($isSuper, $menuIdList, $parentId, $condition = '', $params = [], $order = 'display_order asc') { $data = static::find()->normal()->findByParentId($parentId)->andWhere($condition, $params)->active()->orderBy($order)->asArray()->all(); $urls = []; if ($data) { foreach ($data as $item) { if ($isSuper || in_array($item['menu_id'], $menuIdList)) { $menuUrls = DpAdminMenuUrlRelation::getAllUrlByMenuId($item['menu_id']); if ($menuUrls) { foreach ($menuUrls as $menuUrl) { $urls[$menuUrl['alias']] = Url::toRoute($menuUrl['route']); } } $childrenUrls = static::getUrlsByParentId($isSuper, $menuIdList, $item['menu_id'], $condition, $params, $order); if ($childrenUrls) { $urls = array_merge($urls, $childrenUrls); } } } } return $urls; }