From ec68bf7dcd3e1b80eea125b833518de5b9b08794 Mon Sep 17 00:00:00 2001 From: PovilasKorop Date: Tue, 16 Nov 2021 08:05:39 +0200 Subject: [PATCH] Task 3 - get a single record --- README.md | 12 ++++++++++-- app/Http/Controllers/UserController.php | 7 +++++++ resources/views/users/show.blade.php | 3 +++ routes/web.php | 4 +++- tests/Feature/EloquentTest.php | 13 ++++++++++++- 5 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 resources/views/users/show.blade.php diff --git a/README.md b/README.md index f186d58..8577550 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Test method `test_create_model_incorrect_table()`. --- -## Task 2. Eloquent Get Data. +## Task 2. Get Data List. In `app/Http/Controllers/UserController.php` file method `index()`, write Eloquent query to get 3 newest users with verified emails, ordered from newest to oldest. Transform this SQL query into Eloquent: @@ -41,5 +41,13 @@ In `app/Http/Controllers/UserController.php` file method `index()`, write Eloque select * from users where email_verified_at is not null order by created_at desc limit 3 ``` -Test method `test_users_get()`. +Test method `test_get_filtered_list()`. + +--- + +## Task 3. Get a Single Record. + +In `app/Http/Controllers/UserController.php` file method `show($userId)`, fill in the `$user` value with finding the user by `users.id = $userId`. If the user is not found, show default Laravel 404 page. + +Test method `test_find_user_or_show_404_page()`. diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 66d6333..1d16a88 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -18,4 +18,11 @@ class UserController extends Controller return view('users.index', compact('users')); } + + public function show($userId) + { + $user = NULL; // TASK: find user by $userId or show "404 not found" page + + return view('users.show', compact('user')); + } } diff --git a/resources/views/users/show.blade.php b/resources/views/users/show.blade.php new file mode 100644 index 0000000..1ab057b --- /dev/null +++ b/resources/views/users/show.blade.php @@ -0,0 +1,3 @@ +

User: {{ $user->name }}

+ +Lorem ipsum dummy text. diff --git a/routes/web.php b/routes/web.php index ed70cc2..287078a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,6 +1,7 @@ create(['created_at' => now()->subMinutes(5)]); $user2 = User::factory()->create(['created_at' => now()->subMinutes(4)]); @@ -44,4 +44,15 @@ class EloquentTest extends TestCase $response->assertSee('3. ' . $user2->name); // not $user3 } + public function test_find_user_or_show_404_page() + { + $response = $this->get('users/1'); + $response->assertStatus(404); + + $user = User::factory()->create(); + $response = $this->get('users/1'); + $response->assertStatus(200); + $response->assertViewHas('user', $user); + } + }