Avoid nested back param in subscription show links

This commit is contained in:
萝卜
2026-03-13 17:55:16 +00:00
parent 1f2ea56707
commit 142373eb61

View File

@@ -9,10 +9,18 @@
// 注意:这里使用相对路径,避免测试/不同 APP_URL 环境下生成绝对域名导致断言与展示不一致
// 同时:自动附带 back 参数,保证“从订阅详情跳到订单列表/治理后能回到订阅详情并保留上下文”
$platformOrdersBaseUrl = '/admin/platform-orders';
$backToSubscriptionShow = request()->getRequestUri();
$makePlatformOrderUrl = function (array $query) use ($platformOrdersBaseUrl, $backToSubscriptionShow) {
// 若调用方显式传了 back则不覆盖否则默认回到当前订阅详情页
$query = $query + ['back' => $backToSubscriptionShow];
// back 参数用于“返回上一页(保留上下文)”,但 back 本身不应再包含 back避免无限嵌套导致 URL 膨胀)
$currentQuery = request()->query();
unset($currentQuery['back']);
$selfWithoutBack = '/' . ltrim(request()->path(), '/');
if (count($currentQuery) > 0) {
$selfWithoutBack .= '?' . \Illuminate\Support\Arr::query($currentQuery);
}
$makePlatformOrderUrl = function (array $query) use ($platformOrdersBaseUrl, $selfWithoutBack) {
// 若调用方显式传了 back则不覆盖否则默认回到当前订阅详情页剔除 back避免嵌套
$query = $query + ['back' => $selfWithoutBack];
return $platformOrdersBaseUrl . '?' . \Illuminate\Support\Arr::query($query);
};
@@ -305,7 +313,7 @@
<span class="muted"></span>
<a href="?order_sync_status=syncable" class="muted">可同步</a>
<span class="muted"></span>
<a href="/admin/platform-orders?site_subscription_id={{ $subscription->id }}&back={{ urlencode(request()->getRequestUri()) }}" class="muted">在平台订单页打开</a>
<a href="/admin/platform-orders?site_subscription_id={{ $subscription->id }}&back={{ urlencode($selfWithoutBack) }}" class="muted">在平台订单页打开</a>
@if($cur)
<span class="muted">(当前:{{ $cur }}</span>
@endif
@@ -342,7 +350,7 @@
@endphp
<tr>
<td>{{ $order->id }}</td>
<td><a href="/admin/platform-orders/{{ $order->id }}?back={{ urlencode(request()->getRequestUri()) }}">{{ $order->order_no }}</a></td>
<td><a href="/admin/platform-orders/{{ $order->id }}?back={{ urlencode($selfWithoutBack) }}">{{ $order->order_no }}</a></td>
<td>{{ $order->status }}</td>
<td>{{ $order->payment_status }}</td>
<td>¥{{ number_format((float) $order->payable_amount, 2) }} / ¥{{ number_format((float) $order->paid_amount, 2) }}</td>
@@ -360,7 +368,7 @@
@endif
</td>
<td>
<a href="/admin/platform-orders/{{ $order->id }}?back={{ urlencode(request()->getRequestUri()) }}">详情</a>
<a href="/admin/platform-orders/{{ $order->id }}?back={{ urlencode($selfWithoutBack) }}">详情</a>
</td>
</tr>
@empty