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/factories/CategoryFactory.php b/database/factories/CategoryFactory.php new file mode 100644 index 0000000..1c1d789 --- /dev/null +++ b/database/factories/CategoryFactory.php @@ -0,0 +1,27 @@ + + */ +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/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'); + } +}; 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([ 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); + + + + + + + + +