@AlpineMilk

Как упростить написание сидеров?

Добрый день! Я создал файл сидер который добавляет разные категории, и как вы можете заметить выглядит это не очень. Мне приходится каждый раз прописывать DB::table('categories')->insert([ и так далее, для всех разных значений.
Вопрос: можно ли это дело как нибудь упростить?? значения должны быть всегда разные, по этому циклом сделать не получится
<?php

use Illuminate\Database\Seeder;

class CategoriesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('categories')->insert([
            'name' => 'PHP',
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
        DB::table('categories')->insert([
            'name' => 'JavaScript',
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
        DB::table('categories')->insert([
            'name' => 'HTML',
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
        DB::table('categories')->insert([
            'name' => 'CSS',
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
        DB::table('categories')->insert([
            'name' => 'Git',
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
    }
}
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
colonel
@colonel
Разработчик PHP, Laravel
$names = [
'PHP',
'JavaScript',
'HTML',
// и другие
];

foreach($names as $name)
{
        DB::table('categories')->insert([
            'name' => $name,
            'created_at' => date ('Y-m-d H:i:s'),
            'updated_at' => date ('Y-m-d H:i:s')
        ]);
}


И для вставки даты лучше использовать \Carbon\Carbon::now();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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