feat: plan store/update respect back redirect
This commit is contained in:
@@ -160,8 +160,16 @@ class PlanController extends Controller
|
|||||||
$this->ensurePlatformAdmin($request);
|
$this->ensurePlatformAdmin($request);
|
||||||
|
|
||||||
$data = $this->validatePlan($request);
|
$data = $this->validatePlan($request);
|
||||||
|
|
||||||
|
$back = (string) $request->input('back', '');
|
||||||
|
$safeBack = str_starts_with($back, '/') ? $back : '';
|
||||||
|
|
||||||
$plan = Plan::query()->create($data);
|
$plan = Plan::query()->create($data);
|
||||||
|
|
||||||
|
if ($safeBack !== '') {
|
||||||
|
return redirect($safeBack)->with('success', '套餐已创建:' . $plan->name);
|
||||||
|
}
|
||||||
|
|
||||||
return redirect('/admin/plans')->with('success', '套餐已创建:' . $plan->name);
|
return redirect('/admin/plans')->with('success', '套餐已创建:' . $plan->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,8 +215,16 @@ class PlanController extends Controller
|
|||||||
$this->ensurePlatformAdmin($request);
|
$this->ensurePlatformAdmin($request);
|
||||||
|
|
||||||
$data = $this->validatePlan($request, $plan->id);
|
$data = $this->validatePlan($request, $plan->id);
|
||||||
|
|
||||||
|
$back = (string) $request->input('back', '');
|
||||||
|
$safeBack = str_starts_with($back, '/') ? $back : '';
|
||||||
|
|
||||||
$plan->update($data);
|
$plan->update($data);
|
||||||
|
|
||||||
|
if ($safeBack !== '') {
|
||||||
|
return redirect($safeBack)->with('success', '套餐已更新:' . $plan->name);
|
||||||
|
}
|
||||||
|
|
||||||
return redirect('/admin/plans')->with('success', '套餐已更新:' . $plan->name);
|
return redirect('/admin/plans')->with('success', '套餐已更新:' . $plan->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,11 @@
|
|||||||
<form method="post" action="{{ $formAction }}" class="card form-grid">
|
<form method="post" action="{{ $formAction }}" class="card form-grid">
|
||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
|
@php $back = (string) ($back ?? ''); @endphp
|
||||||
|
@if($back !== '')
|
||||||
|
<input type="hidden" name="back" value="{{ $back }}">
|
||||||
|
@endif
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<span>套餐名称</span>
|
<span>套餐名称</span>
|
||||||
<input name="name" value="{{ old('name', $plan->name) }}" required>
|
<input name="name" value="{{ old('name', $plan->name) }}" required>
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ class AdminPlanTest extends TestCase
|
|||||||
->assertSee('新建套餐')
|
->assertSee('新建套餐')
|
||||||
->assertSee('套餐名称');
|
->assertSee('套餐名称');
|
||||||
|
|
||||||
|
$back = '/admin/plans?status=active&billing_cycle=monthly';
|
||||||
|
|
||||||
$this->post('/admin/plans', [
|
$this->post('/admin/plans', [
|
||||||
'code' => 'pro_monthly_form',
|
'code' => 'pro_monthly_form',
|
||||||
'name' => '专业版(月付)',
|
'name' => '专业版(月付)',
|
||||||
@@ -101,7 +103,8 @@ class AdminPlanTest extends TestCase
|
|||||||
'sort' => 5,
|
'sort' => 5,
|
||||||
'description' => '主要面向成长型站点',
|
'description' => '主要面向成长型站点',
|
||||||
'published_at' => now()->format('Y-m-d H:i:s'),
|
'published_at' => now()->format('Y-m-d H:i:s'),
|
||||||
])->assertRedirect('/admin/plans');
|
'back' => $back,
|
||||||
|
])->assertRedirect($back);
|
||||||
|
|
||||||
$this->get('/admin/plans')
|
$this->get('/admin/plans')
|
||||||
->assertSee('专业版(月付)')
|
->assertSee('专业版(月付)')
|
||||||
@@ -126,6 +129,8 @@ class AdminPlanTest extends TestCase
|
|||||||
->assertOk()
|
->assertOk()
|
||||||
->assertSee('编辑套餐');
|
->assertSee('编辑套餐');
|
||||||
|
|
||||||
|
$back = '/admin/plans?published=unpublished';
|
||||||
|
|
||||||
$this->post('/admin/plans/' . $plan->id, [
|
$this->post('/admin/plans/' . $plan->id, [
|
||||||
'code' => 'update_test',
|
'code' => 'update_test',
|
||||||
'name' => '更新后套餐',
|
'name' => '更新后套餐',
|
||||||
@@ -135,7 +140,8 @@ class AdminPlanTest extends TestCase
|
|||||||
'status' => 'active',
|
'status' => 'active',
|
||||||
'sort' => 10,
|
'sort' => 10,
|
||||||
'description' => '通过编辑表单更新',
|
'description' => '通过编辑表单更新',
|
||||||
])->assertRedirect('/admin/plans');
|
'back' => $back,
|
||||||
|
])->assertRedirect($back);
|
||||||
|
|
||||||
$this->get('/admin/plans')
|
$this->get('/admin/plans')
|
||||||
->assertSee('更新后套餐')
|
->assertSee('更新后套餐')
|
||||||
|
|||||||
Reference in New Issue
Block a user