Skip to content

Commit 90775e4

Browse files
committed
Finish adding seeders and factories
1 parent 21c59d7 commit 90775e4

File tree

5 files changed

+123
-1
lines changed

5 files changed

+123
-1
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace Database\Factories;
4+
5+
use App\Models\Order;
6+
use Illuminate\Database\Eloquent\Factories\Factory;
7+
use Illuminate\Support\Str;
8+
9+
class OrderFactory extends Factory
10+
{
11+
/**
12+
* The name of the factory's corresponding model.
13+
*
14+
* @var string
15+
*/
16+
protected $model = Order::class;
17+
18+
/**
19+
* Define the model's default state.
20+
*
21+
* @return array
22+
*/
23+
public function definition()
24+
{
25+
return [
26+
'user_id' => $this->faker->numberBetween(1, 10),
27+
'transaction_id' => Str::random(16),
28+
'total' => $this->faker->numberBetween(50000, 200000),
29+
];
30+
}
31+
}

database/seeders/DatabaseSeeder.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ class DatabaseSeeder extends Seeder
1313
*/
1414
public function run()
1515
{
16-
// \App\Models\User::factory(10)->create();
16+
$this->call([
17+
UserSeeder::class,
18+
ProductSeeder::class,
19+
]);
1720
}
1821
}

database/seeders/OrderSeeder.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use App\Models\Order;
7+
8+
class OrderSeeder extends Seeder
9+
{
10+
/**
11+
* Run the database seeds.
12+
*
13+
* @return void
14+
*/
15+
public function run()
16+
{
17+
Order::factory()
18+
->times(10)
19+
->create();
20+
}
21+
}

database/seeders/ProductSeeder.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use App\Models\Category;
6+
use App\Models\Order;
7+
use Illuminate\Database\Seeder;
8+
use App\Models\Product;
9+
10+
class ProductSeeder extends Seeder
11+
{
12+
/**
13+
* Run the database seeds.
14+
*
15+
* @return void
16+
*/
17+
public function run()
18+
{
19+
Product::factory()
20+
->times(20)
21+
->create();
22+
23+
Category::factory()
24+
->times(4)
25+
->create();
26+
27+
Order::factory()
28+
->times(10)
29+
->create();
30+
31+
$categories = Category::all();
32+
Product::all()->each(function ($product) use ($categories) {
33+
$product->categories()->attach(
34+
$categories->random(2)->pluck('id')->toArray()
35+
);
36+
});
37+
38+
$orders = Order::all();
39+
Product::all()->each(function ($product) use ($orders) {
40+
$orderIds = $orders->random(3)->pluck('id')->toArray();
41+
foreach ($orderIds as $orderId) {
42+
$product->orders()->attach($orderId, ['quantity' => rand(1, 5)]);
43+
}
44+
});
45+
}
46+
}

database/seeders/UserSeeder.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use App\Models\User;
7+
8+
class UserSeeder extends Seeder
9+
{
10+
/**
11+
* Run the database seeds.
12+
*
13+
* @return void
14+
*/
15+
public function run()
16+
{
17+
User::factory()
18+
->times(10)
19+
->create();
20+
}
21+
}

0 commit comments

Comments
 (0)