LoginSignup
3
3

More than 1 year has passed since last update.

Excelで作るSeederデータの作り方(Laravel)

Last updated at Posted at 2021-12-11

はじめに

不規則かつ大量のデータを作る時に、Excelを使った方が時短になるよという話

今回作るシーダーのテーブル構造

テーブル名はusersで、カラムは氏名・年齢・住所の情報があるような構造とします

スクリーンショット 2021-12-11 11.17.52.png

事前準備(シーダーファイルの作成)

以下のコマンドでseederファイルを作成するためのコマンドを実行

php artisan make:seeder UserTableSeeder

今回はDBファザードを使うので、インポートします。

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;


class UserTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

データの作成

テーブルのデータをエクセルで一覧化します

スクリーンショット 2021-12-11 11.37.01.png

Eの列に以下の関数を入れます

=ROW()-1 & " => array( '"&$A$1&"' => '" & A2 & "' , '"&$B$1&"' => '" & B2 & "','"&$C$1&"' => '" & C2 & "','"&$D$1&"' => '" & D2 & "'),"

スクリーンショット 2021-12-11 11.46.20.png
これでseeder用のデータの完成です

seederファイルに反映

excelで作成したデータを、seederファイルに反映させます
今回はinsertを使います

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;


class UserTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    // 
    \DB::table('users')->insert(array (
        1 => array( 'id' => '1' , 'name' => '田中 隆','age' => '36','address' => '福井県坂井市春江町江留下相田579-20'),
        2 => array( 'id' => '2' , 'name' => '佐藤 茂','age' => '33','address' => '京都府南丹市八木町鳥羽844-5'),
        3 => array( 'id' => '3' , 'name' => '村田 学','age' => '26','address' => '岩手県紫波郡紫波町星山385-16'),
        4 => array( 'id' => '4' , 'name' => '高橋 武士','age' => '24','address' => '福井県福井市中平町644-11'),
        5 => array( 'id' => '5' , 'name' => '大塚 茂','age' => '56','address' => '京都府京都市左京区下鴨北茶ノ木町658-9'),
        6 => array( 'id' => '6' , 'name' => '岡本 亨','age' => '40','address' => '大阪府岸和田市小松里町896-13'),
        7 => array( 'id' => '7' , 'name' => '鈴木 貴子','age' => '23','address' => '和歌山県日高郡印南町樮川499-11'),
        8 => array( 'id' => '8' , 'name' => '鈴木 奈津子','age' => '27','address' => '宮城県伊具郡丸森町滝原748-17'),
        9 => array( 'id' => '9' , 'name' => '池田 美香','age' => '33','address' => '京都府京都市中京区石橋町195-15'),
        10 => array( 'id' => '10' , 'name' => '渡辺 知子','age' => '19','address' => '栃木県大田原市浅香3-743-4'),
    ));
    }
}

シーダー実行

作成したseederを実行して完了!

php artisan db:seed --class=UserTableSeeder

最後に

もっと楽な方法があれば教えてください

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3