From 2f215d0b829de22c84deb3a18e084fa232675315 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:57:10 +0200 Subject: [PATCH] Add user page. --- app/Http/Controllers/UserController.php | 18 ++++++++++++++++++ app/Models/User.php | 9 +++++++++ resources/views/user/show.blade.php | 25 +++++++++++++++++++++++++ routes/web.php | 5 +++++ tests/Feature/UserTest.php | 24 ++++++++++++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 app/Http/Controllers/UserController.php create mode 100644 resources/views/user/show.blade.php create mode 100644 tests/Feature/UserTest.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..8aa44a9 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,18 @@ +belongsTo(Character::class, 'character_id'); } + public function alt_characters() + { + $relation = $this->characters(); + if ($this->character_id) { + $relation->where('id', '!=', $this->character_id); + } + return $relation; + } + public function characters() { return $this->hasMany(Character::class); diff --git a/resources/views/user/show.blade.php b/resources/views/user/show.blade.php new file mode 100644 index 0000000..9054c06 --- /dev/null +++ b/resources/views/user/show.blade.php @@ -0,0 +1,25 @@ + + + {{ __('User') }} - {{ $user->username }} + +
+ + +

{{ __('Characters') }}

+
+ + @if ($user->characters->count()) +
+ @if ($user->main_character) + + @endif + + @foreach($user->alt_characters as $character) + + @endforeach +
+ @else + + @endif +
+
diff --git a/routes/web.php b/routes/web.php index 83f5f28..0747d0a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; +use App\Http\Controllers\UserController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\CharacterController; use App\Http\Controllers\CharacterProfessionController; @@ -36,6 +37,10 @@ Route::name('auth.')->group(function () { // Public section // ---------------------------- +Route::prefix('user')->name('user.')->group(function() { + Route::get('{user}', [UserController::class, 'show'])->name('show'); +}); + Route::prefix('characters')->name('character.')->group(function() { Route::get('create', [CharacterController::class, 'create'])->name('create'); Route::post('create', [CharacterController::class, 'store'])->name('store'); diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php new file mode 100644 index 0000000..1b19c72 --- /dev/null +++ b/tests/Feature/UserTest.php @@ -0,0 +1,24 @@ +create(); + + $response = $this->get(route('user.show', [ 'user' => $user ])); + + $response->assertStatus(200); + } +}