From 0391e284469e07ed3bc2c0baa72326e38480dfff Mon Sep 17 00:00:00 2001 From: mashlahmahmod Date: Sat, 20 Aug 2022 23:55:32 +0300 Subject: [PATCH 1/3] Create Categories (Model - migration - Controller) --- app/Http/Controllers/CategoryController.php | 85 +++++++++++++++++++ app/Models/Category.php | 34 ++++++++ ...2_08_20_205032_create_categories_table.php | 43 ++++++++++ 3 files changed, 162 insertions(+) create mode 100644 app/Http/Controllers/CategoryController.php create mode 100644 app/Models/Category.php create mode 100644 database/migrations/2022_08_20_205032_create_categories_table.php diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php new file mode 100644 index 0000000..735f384 --- /dev/null +++ b/app/Http/Controllers/CategoryController.php @@ -0,0 +1,85 @@ +belongsTo(Category::class,"parent_id"); + } + + public function categoryChilds() + { + return $this->hasMany(Category::class); + } + + public function product() + { + return $this->hasMany(Product::class); + } + +} diff --git a/database/migrations/2022_08_20_205032_create_categories_table.php b/database/migrations/2022_08_20_205032_create_categories_table.php new file mode 100644 index 0000000..b06e831 --- /dev/null +++ b/database/migrations/2022_08_20_205032_create_categories_table.php @@ -0,0 +1,43 @@ +id(); + $table->string('name'); + + + $table->foreignId('parent_id') + ->references('id') + ->on('categories') + ->nullable()->unsigned(); + + $table->timestamps(); + $table->softDeletes(); + + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('categories'); + } +}; From b85416d2a0fb9a586aacbc917bcd679b6caa74bb Mon Sep 17 00:00:00 2001 From: mashlahmahmod Date: Sun, 21 Aug 2022 00:09:54 +0300 Subject: [PATCH 2/3] Create Category (Resource-Factory-seeder) --- app/Http/Resources/CategoryResource.php | 19 +++++++++++++++++ database/factories/CategoryFactory.php | 27 +++++++++++++++++++++++++ database/seeders/DatabaseSeeder.php | 4 ++++ 3 files changed, 50 insertions(+) create mode 100644 app/Http/Resources/CategoryResource.php create mode 100644 database/factories/CategoryFactory.php diff --git a/app/Http/Resources/CategoryResource.php b/app/Http/Resources/CategoryResource.php new file mode 100644 index 0000000..1d91b8c --- /dev/null +++ b/app/Http/Resources/CategoryResource.php @@ -0,0 +1,19 @@ + + */ +class CategoryFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + // + 'name' => $this->faker->text(50) , + + 'parent_id'=>$this->faker->numberBetween(1,30), + + ]; + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 76d96dc..9295bd7 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -14,6 +14,10 @@ class DatabaseSeeder extends Seeder */ public function run() { + // \App\Models\Category::factory(20)->create(); + + + // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ From 0b5b8e8dfe9db8192a5683acd82c70c576f67fe5 Mon Sep 17 00:00:00 2001 From: mashlahmahmod Date: Sun, 21 Aug 2022 16:20:19 +0300 Subject: [PATCH 3/3] Category Resource Route --- routes/web.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/routes/web.php b/routes/web.php index f685772..e2b1aff 100644 --- a/routes/web.php +++ b/routes/web.php @@ -30,3 +30,15 @@ Route::get('profile', [\App\Http\Controllers\ProfileController::class, 'show'])->name('profile.show'); Route::put('profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update'); }); + + +Route::resource('categories', CategoryController::class); + + + + + + + + +