diff --git a/src/Http/Controllers/ResourceController.php b/src/Http/Controllers/ResourceController.php index 9c2fee62..ea82667f 100644 --- a/src/Http/Controllers/ResourceController.php +++ b/src/Http/Controllers/ResourceController.php @@ -13,6 +13,7 @@ use DoubleThreeDigital\Runway\Runway; use DoubleThreeDigital\Runway\Support\Json; use Statamic\CP\Breadcrumbs; +use Statamic\Exceptions\NotFoundHttpException; use Statamic\Facades\Scope; use Statamic\Facades\User; use Statamic\Fields\Field; @@ -170,6 +171,10 @@ public function edit(EditRequest $request, $resourceHandle, $record) ->where($resource->model()->qualifyColumn($resource->routeKey()), $record) ->first(); + if (! $record) { + throw new NotFoundHttpException(); + } + $values = []; $blueprintFieldKeys = $resource->blueprint()->fields()->all()->keys()->toArray(); diff --git a/tests/Http/Controllers/ResourceControllerTest.php b/tests/Http/Controllers/ResourceControllerTest.php index 1381a506..c73a2d5b 100644 --- a/tests/Http/Controllers/ResourceControllerTest.php +++ b/tests/Http/Controllers/ResourceControllerTest.php @@ -233,6 +233,17 @@ public function can_edit_resource() ->assertSee($post->body); } + /** @test */ + public function cant_edit_resource_when_it_does_not_exist() + { + $user = User::make()->makeSuper()->save(); + + $this->actingAs($user) + ->get(cp_route('runway.edit', ['resourceHandle' => 'post', 'record' => 12345])) + ->assertNotFound() + ->assertSee('Page Not Found'); + } + /** @test */ public function can_edit_resource_with_simple_date_field() {