From 4b75ab0f3fcd5807f958bc8f8802853b46d092a7 Mon Sep 17 00:00:00 2001 From: Kim Helge Frimanslund <1223194+kimhf@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:02:08 +0100 Subject: [PATCH 1/3] Fix double base path in url --- src/Response.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Response.php b/src/Response.php index 8a17076e..0e9e2f0d 100644 --- a/src/Response.php +++ b/src/Response.php @@ -99,7 +99,7 @@ public function toResponse($request) $page = [ 'component' => $this->component, 'props' => $props, - 'url' => $request->getBaseUrl().$request->getRequestUri(), + 'url' => $request->getBaseUrl().$request->getPathInfo(), 'version' => $this->version, ]; From a690f229567f5a33f5dad9c9c23a95dd84ae4b8e Mon Sep 17 00:00:00 2001 From: Kim Helge Frimanslund <1223194+kimhf@users.noreply.github.com> Date: Fri, 28 Jan 2022 10:43:56 +0100 Subject: [PATCH 2/3] Add query string to url --- src/Response.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Response.php b/src/Response.php index 0e9e2f0d..5f6f7054 100644 --- a/src/Response.php +++ b/src/Response.php @@ -96,10 +96,16 @@ public function toResponse($request) $props = $this->resolvePropertyInstances($props, $request); + $queryString = $request->getQueryString(); + + if (null !== $queryString) { + $queryString = '?'.$queryString; + } + $page = [ 'component' => $this->component, 'props' => $props, - 'url' => $request->getBaseUrl().$request->getPathInfo(), + 'url' => $request->getBaseUrl().$request->getPathInfo().$queryString, 'version' => $this->version, ]; From 28b3b461d6fa21cd9637612963771b3652edeb54 Mon Sep 17 00:00:00 2001 From: Kim Helge Frimanslund <1223194+kimhf@users.noreply.github.com> Date: Mon, 31 Jan 2022 10:44:48 +0100 Subject: [PATCH 3/3] Add test for subpath laravel install --- tests/ResponseTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/ResponseTest.php b/tests/ResponseTest.php index 220e2396..7b2a0144 100644 --- a/tests/ResponseTest.php +++ b/tests/ResponseTest.php @@ -362,4 +362,19 @@ public function test_responsable_with_invalid_key(): void $page['props']['resource'] ); } + + public function test_response_url_in_laravel_subpath_install(): void + { + $request = Request::create('/subpath/product/123', 'GET', [], [], [], [ + 'SCRIPT_FILENAME' => '/project/public/index.php', + 'SCRIPT_NAME' => '/subpath/index.php', + ]); + $request->headers->add(['X-Inertia' => 'true']); + + $response = new Response('Product/Show', []); + $response = $response->toResponse($request); + $page = $response->getData(); + + $this->assertSame('/subpath/product/123', $page->url); + } }