refactor: BackUrl::withBack 统一 allUrl 生成(清空筛选但保留 back)
This commit is contained in:
@@ -68,6 +68,30 @@ class BackUrl
|
|||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给指定站内相对路径附加安全 back(若 back 为空则原样返回)。
|
||||||
|
*
|
||||||
|
* 用途:列表页“全部/返回来源”等需要清空筛选但保留 back 的场景。
|
||||||
|
*/
|
||||||
|
public static function withBack(string $path, string $safeBackForLinks = ''): string
|
||||||
|
{
|
||||||
|
$path = (string) $path;
|
||||||
|
|
||||||
|
if ($safeBackForLinks === '') {
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 仅支持站内相对路径;若调用方传入了异常值,这里不做拼接,直接返回原 path。
|
||||||
|
if ($path === '' || !str_starts_with($path, '/')) {
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 若 path 已带 query,则追加 &back=;否则追加 ?back=
|
||||||
|
$sep = str_contains($path, '?') ? '&' : '?';
|
||||||
|
|
||||||
|
return $path . $sep . \Illuminate\Support\Arr::query(['back' => $safeBackForLinks]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前路径下的“快捷筛选”链接构造器:
|
* 当前路径下的“快捷筛选”链接构造器:
|
||||||
* - 仅保留指定上下文键(例如 merchant_id/plan_id/keyword/lead_id 等)
|
* - 仅保留指定上下文键(例如 merchant_id/plan_id/keyword/lead_id 等)
|
||||||
|
|||||||
@@ -55,10 +55,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
||||||
$allUrl = '/admin/plans';
|
$allUrl = \App\Support\BackUrl::withBack('/admin/plans', $safeBackForLinks);
|
||||||
if ($safeBackForLinks !== '') {
|
|
||||||
$allUrl .= '?' . \Illuminate\Support\Arr::query(['back' => $safeBackForLinks]);
|
|
||||||
}
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -141,10 +141,7 @@
|
|||||||
|
|
||||||
// “全部”:清空筛选,但保留 back(用于返回来源页)
|
// “全部”:清空筛选,但保留 back(用于返回来源页)
|
||||||
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
||||||
$allUrl = '/admin/platform-orders';
|
$allUrl = \App\Support\BackUrl::withBack('/admin/platform-orders', $safeBackForLinks);
|
||||||
if ($safeBackForLinks !== '') {
|
|
||||||
$allUrl .= '?' . \Illuminate\Support\Arr::query(['back' => $safeBackForLinks]);
|
|
||||||
}
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<div class="inline-links">
|
<div class="inline-links">
|
||||||
|
|||||||
@@ -63,10 +63,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
// “全部”:清空筛选,但保留安全 back(用于返回来源页)
|
||||||
$allUrl = '/admin/site-subscriptions';
|
$allUrl = \App\Support\BackUrl::withBack('/admin/site-subscriptions', $safeBackForLinks);
|
||||||
if ($safeBackForLinks !== '') {
|
|
||||||
$allUrl .= '?' . \Illuminate\Support\Arr::query(['back' => $safeBackForLinks]);
|
|
||||||
}
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Reference in New Issue
Block a user