Skip to content

Commit 6a84341

Browse files
committed
Redirects back with query params
1 parent 61d19b1 commit 6a84341

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Http/Middleware/TurboMiddleware.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,6 @@ private function guessRedirectingRoute($request)
9696
return null;
9797
}
9898

99-
return route($formRouteName, $route->parameters());
99+
return route($formRouteName, $route->parameters() + request()->query());
100100
}
101101
}

tests/Http/Middleware/TurboMiddlewareTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,27 @@ public function redirects_back_to_resource_edit_routes_on_failed_validation_foll
144144
$response->assertStatus(303);
145145
}
146146

147+
/** @test */
148+
public function redirects_include_query_params()
149+
{
150+
Route::get('/test-models/{testModel}/edit', function () {
151+
return 'show form';
152+
})->name('test-models.edit');
153+
154+
Route::put('/test-models/{testModel}', function (TestModel $model) {
155+
request()->validate(['name' => 'required']);
156+
})->name('test-models.update')->middleware(TurboMiddleware::class);
157+
158+
$testModel = TestModel::create(['name' => 'Dummy model']);
159+
160+
$response = $this->from('/source')->put(route('test-models.update', ['testModel' => $testModel, 'frame' => 'lorem']), [], [
161+
'Accept' => sprintf('%s, text/html, application/xhtml+xml', Turbo::TURBO_STREAM_FORMAT),
162+
]);
163+
164+
$response->assertRedirect(route('test-models.edit', ['testModel' => $testModel, 'frame' => 'lorem']));
165+
$response->assertStatus(303);
166+
}
167+
147168
/** @test */
148169
public function lets_it_crash_when_redirect_route_does_not_exist()
149170
{

0 commit comments

Comments
 (0)