@Qu1eeeOJ

Как создать БД и заполнить его данными?

Здравствуйте, мне нужно, чтобы после выполнения команды: php artisan migrate:refresh
Создалась сама таблица и в ней уже была бы строчка со значениями.
  • Вопрос задан
  • 185 просмотров
Решения вопроса 2
Konata69lol
@Konata69lol
backend developer (php/go)
Использовать Laravel Seeder в паре с Faker
Ответ написан
sandu2d
@sandu2d
Человек
Как и говорили до этого, надо использовать Seeder и уже по желанию и Faker.
Структура там очень простая:
database
-factories
-migrations
-seeds
--DatabaseSeeder.php

И вот рядом с этим файлом и надо создать новый класс например:
GroupsTableSeeder
<?php

use Illuminate\Database\Seeder;
use App\Models\Group;
use App\Models\Permission;

class GroupsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $group = $this->seedGroup([
            'name' => 'Administrator',
        ]);

        $group->permissions()->sync(
            Permission::all()->pluck('id')->toArray()
        );
    }

    private function seedGroup(array $data)
    {
        $group = new Group([
            'name' => $data['name'],
        ]);

        $group->save();

        return $group;
    }
}

И в DatabaseSeeder добавить его чтоб его видел Laravel:
DatabaseSeeder
<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(GroupsTableSeeder::class);
    }
}

И того:
database
-factories
-migrations
-seeds
--DatabaseSeeder.php
--GroupsTableSeeder.php
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы