From ef8cf9f247a1e6985f18141f1243195191e9db9d Mon Sep 17 00:00:00 2001 From: PovilasKorop Date: Tue, 16 Nov 2021 09:49:29 +0200 Subject: [PATCH] Task 5 - simple create --- README.md | 9 ++++++ app/Http/Controllers/ProjectController.php | 19 +++++++++++ app/Models/Project.php | 11 +++++++ ...021_11_16_074340_create_projects_table.php | 32 +++++++++++++++++++ routes/web.php | 3 ++ tests/Feature/EloquentTest.php | 5 +++ 6 files changed, 79 insertions(+) create mode 100644 app/Http/Controllers/ProjectController.php create mode 100644 app/Models/Project.php create mode 100644 database/migrations/2021_11_16_074340_create_projects_table.php diff --git a/README.md b/README.md index 9e47c30..457d3d4 100644 --- a/README.md +++ b/README.md @@ -59,3 +59,12 @@ In `app/Http/Controllers/UserController.php` file method `check_create()`, find Test method `test_check_or_create_user()`. +--- + +## Task 5. Create a New Record. + +In `app/Http/Controllers/ProjectController.php` file method `store()`, creating the project will fail. Fix the underlying issue, to make it work. + +Test method `test_create_project()`. + +--- diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php new file mode 100644 index 0000000..53782b6 --- /dev/null +++ b/app/Http/Controllers/ProjectController.php @@ -0,0 +1,19 @@ + $request->name + ]); + + return redirect('/')->with('success', 'Project created'); + } +} diff --git a/app/Models/Project.php b/app/Models/Project.php new file mode 100644 index 0000000..1034631 --- /dev/null +++ b/app/Models/Project.php @@ -0,0 +1,11 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('projects'); + } +} diff --git a/routes/web.php b/routes/web.php index 5175dea..9a5a0c4 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\ProjectController; /* |-------------------------------------------------------------------------- @@ -21,3 +22,5 @@ Route::get('/', function () { Route::get('users', [UserController::class, 'index']); Route::get('users/{userId}', [UserController::class, 'show']); Route::get('users/check/{name}/{email}', [UserController::class, 'check_create']); + +Route::post('projects', [ProjectController::class, 'store']); diff --git a/tests/Feature/EloquentTest.php b/tests/Feature/EloquentTest.php index fe5b082..80bcef8 100644 --- a/tests/Feature/EloquentTest.php +++ b/tests/Feature/EloquentTest.php @@ -69,4 +69,9 @@ class EloquentTest extends TestCase $this->assertDatabaseCount('users', 1); } + public function test_create_project() { + $response = $this->post('projects', ['name' => 'Some name']); + $response->assertRedirect(); + } + }