/** * 列表 * * @param string $sort 排序 * @param int $page 页面 * @param int $limit 每页记录数 * @return array */ public function actionList($sort = '', $page = 1, $limit = 20) { $link_id = \Yii::$app->request->get('link_id'); $menu_id = \Yii::$app->request->get('menu_id'); $url_id = \Yii::$app->request->get('url_id'); $status = \Yii::$app->request->post('status'); $limit = intval($limit); $order = ExtHelpers::getOrder($sort, ['link_id', 'url_id'], [], 'link_id DESC'); $condition = '1'; $params = []; $tabName = DpAdminMenuUrlRelation::tableName(); $order = join(',', array_map(function ($value) use($tabName) { return $tabName . '.' . $value; }, explode(',', $order))); if ($link_id) { $condition .= ' and ' . $tabName . '.link_id=:link_id'; $params[':link_id'] = $link_id; } if ($menu_id) { $condition .= ' and ' . $tabName . '.menu_id=:menu_id'; $params[':menu_id'] = $menu_id; } if ($url_id) { $condition .= ' and ' . $tabName . '.url_id=:url_id'; $params[':url_id'] = $url_id; } if (is_numeric($status)) { $condition .= ' and ' . $tabName . '.status=:status'; $params[':status'] = $status; } $data = DpAdminMenuUrlRelation::getListByCondition($condition, $params, $order, $page, $limit); if ($data['list']) { foreach ($data['list'] as &$item) { foreach ($item['menuUrl'] as $k => $v) { $item['url.' . $k] = $v; } unset($item['menuUrl']); } } return ['total' => $data['pagination']['totalCount'], 'list' => $data['list']]; }