finished laravel migration
This commit is contained in:
23
database/seeders/DatabaseSeeder.php
Normal file
23
database/seeders/DatabaseSeeder.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
use WithoutModelEvents;
|
||||
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$this->call([
|
||||
RoleSeeder::class,
|
||||
UserSeeder::class,
|
||||
ForumSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
61
database/seeders/ForumSeeder.php
Normal file
61
database/seeders/ForumSeeder.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Forum;
|
||||
use Faker\Factory as FakerFactory;
|
||||
|
||||
class ForumSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$faker = FakerFactory::create();
|
||||
|
||||
for ($categoryIndex = 1; $categoryIndex <= 5; $categoryIndex += 1) {
|
||||
$category = Forum::create([
|
||||
'name' => ucfirst($faker->words(2, true)),
|
||||
'description' => $faker->sentence(),
|
||||
'type' => 'category',
|
||||
'parent_id' => null,
|
||||
'position' => $categoryIndex,
|
||||
]);
|
||||
|
||||
$subcategoryCount = $faker->numberBetween(1, 5);
|
||||
for ($subIndex = 1; $subIndex <= $subcategoryCount; $subIndex += 1) {
|
||||
$subcategory = Forum::create([
|
||||
'name' => ucfirst($faker->words(2, true)),
|
||||
'description' => $faker->sentence(),
|
||||
'type' => 'category',
|
||||
'parent_id' => $category->id,
|
||||
'position' => $subIndex,
|
||||
]);
|
||||
|
||||
$subForumCount = $faker->numberBetween(1, 5);
|
||||
for ($forumIndex = 1; $forumIndex <= $subForumCount; $forumIndex += 1) {
|
||||
Forum::create([
|
||||
'name' => ucfirst($faker->words(3, true)),
|
||||
'description' => $faker->sentence(),
|
||||
'type' => 'forum',
|
||||
'parent_id' => $subcategory->id,
|
||||
'position' => $forumIndex,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$forumCount = $faker->numberBetween(3, 10);
|
||||
for ($forumIndex = 1; $forumIndex <= $forumCount; $forumIndex += 1) {
|
||||
Forum::create([
|
||||
'name' => ucfirst($faker->words(3, true)),
|
||||
'description' => $faker->sentence(),
|
||||
'type' => 'forum',
|
||||
'parent_id' => $category->id,
|
||||
'position' => $subcategoryCount + $forumIndex,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
18
database/seeders/RoleSeeder.php
Normal file
18
database/seeders/RoleSeeder.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Role;
|
||||
|
||||
class RoleSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
Role::firstOrCreate(['name' => 'ROLE_ADMIN']);
|
||||
Role::firstOrCreate(['name' => 'ROLE_USER']);
|
||||
}
|
||||
}
|
||||
46
database/seeders/UserSeeder.php
Normal file
46
database/seeders/UserSeeder.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Models\Role;
|
||||
use App\Models\User;
|
||||
|
||||
class UserSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$adminRole = Role::where('name', 'ROLE_ADMIN')->first();
|
||||
$userRole = Role::where('name', 'ROLE_USER')->first();
|
||||
|
||||
$admin = User::firstOrCreate(
|
||||
['email' => 'tracer@24unix.net'],
|
||||
[
|
||||
'name' => 'tracer',
|
||||
'password' => Hash::make('password'),
|
||||
'email_verified_at' => now(),
|
||||
]
|
||||
);
|
||||
|
||||
if ($adminRole) {
|
||||
$admin->roles()->syncWithoutDetaching([$adminRole->id]);
|
||||
}
|
||||
|
||||
if ($userRole) {
|
||||
$admin->roles()->syncWithoutDetaching([$userRole->id]);
|
||||
}
|
||||
|
||||
$users = User::factory()->count(100)->create([
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
if ($userRole) {
|
||||
foreach ($users as $user) {
|
||||
$user->roles()->syncWithoutDetaching([$userRole->id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user