mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
优化链接生成函数,使其能够正常跨应用生成链接并且支持app_map的设置;
This commit is contained in:
@@ -19,6 +19,13 @@ class Index extends AdminController
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
|
||||
dump(__url('system.Admin/index'));
|
||||
dump(__url('Ajax/Ajax/initAdmin'));
|
||||
dump(__url('Ajax/initAdmin',[],false,true));
|
||||
dump(__url('welcome'));
|
||||
dump(__url('tools/timer.ClearLog/do'));
|
||||
|
||||
return $this->fetch('', [
|
||||
'admin' => session('admin'),
|
||||
]);
|
||||
@@ -117,5 +124,4 @@ class Index extends AdminController
|
||||
$this->assign('row', $row);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,19 +17,29 @@ if (!function_exists('__url')) {
|
||||
*/
|
||||
function __url(string $url = '', array $vars = [], $suffix = true, $domain = false)
|
||||
{
|
||||
$url_arr = explode('/', $url);
|
||||
$url = url($url, $vars, $suffix, $domain)->build();
|
||||
|
||||
$url_data = parse_url($url);
|
||||
|
||||
$url_path = $url_data['path'];
|
||||
|
||||
$url_arr = explode('/', $url_path);
|
||||
|
||||
$app_map = config('app.app_map');
|
||||
|
||||
$app_name = array_search($url_arr[0], $app_map);
|
||||
$app_name = array_search($url_arr[1], $app_map);
|
||||
|
||||
if (!empty($app_name)) {
|
||||
$url_arr[0] = $app_name;
|
||||
$url_arr[1] = $app_name;
|
||||
}
|
||||
|
||||
$url = implode('/', $url_arr);
|
||||
$url_path = implode('/', $url_arr);
|
||||
|
||||
return url($url, $vars, $suffix, $domain)->build();
|
||||
$url_data['path'] = $url_path;
|
||||
|
||||
$url = unparse_url($url_data);
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,3 +201,21 @@ function json_message($data = [], $code = 0, $msg = '')
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
if (!function_exists('unparse_url')) {
|
||||
|
||||
function unparse_url($parsed_url)
|
||||
{
|
||||
$scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '';
|
||||
$host = isset($parsed_url['host']) ? $parsed_url['host'] : '';
|
||||
$port = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : '';
|
||||
$user = isset($parsed_url['user']) ? $parsed_url['user'] : '';
|
||||
$pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : '';
|
||||
$pass = ($user || $pass) ? "$pass@" : '';
|
||||
$path = isset($parsed_url['path']) ? $parsed_url['path'] : '';
|
||||
$query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
|
||||
$fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : '';
|
||||
return "$scheme$user$pass$host$port$path$query$fragment";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user