示例#1
0
 /**
  * 获取根据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;
 }