refactor(back): add withBackAndFragment helper and use on platform_orders index

This commit is contained in:
萝卜
2026-03-14 19:06:32 +00:00
parent 956e177544
commit 1b6476f2a4
2 changed files with 23 additions and 1 deletions

View File

@@ -92,6 +92,28 @@ class BackUrl
return $path . $sep . \Illuminate\Support\Arr::query(['back' => $safeBackForLinks]);
}
/**
* 给指定站内相对路径附加安全 back并可选追加锚点fragment
*
* 说明fragment 仅允许 [A-Za-z0-9_-],不符合则直接丢弃 fragment。
* 典型用途:列表页行级「去补回执 / 去补退款」等链接,需要跳转到详情页某个区块。
*/
public static function withBackAndFragment(string $path, string $safeBackForLinks = '', string $fragment = ''): string
{
$url = self::withBack($path, $safeBackForLinks);
$fragment = ltrim((string) $fragment, '#');
if ($fragment === '') {
return $url;
}
if (!preg_match('/^[A-Za-z0-9_-]+$/', $fragment)) {
return $url;
}
return $url . '#' . $fragment;
}
/**
* 当前路径下的“快捷筛选”链接构造器:
* - 仅保留指定上下文键(例如 merchant_id/plan_id/keyword/lead_id 等)