今回はseederを使ってダミーデータを作成してみます。
使うのはlaravel8系です。
Table of Contents
シーダーの作成
#シーダ名はアッパーキャメル型で書く。 ex.TestTableSeeder
php artisan make:seeder シーダー名TableSeeder
Code language: CSS (css)
こちらのコマンドを使ってseederを作成します。
database/seeds/シーダー名.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
[
'name' => 'test',
'email' => 'test@test',
'password' => bcrypt('testtest'),
],
[
'name' => 'test1',
'email' => 'test1@test',
'password' => bcrypt('password1'),
],
[
'name' => 'test2',
'email' => 'test2@test',
'password' => bcrypt('password2'),
],
[
'name' => 'test3',
'email' => 'test3@test',
'password' => bcrypt('password3'), //
],
]);
}
}
Code language: HTML, XML (xml)
パスワードはbcryptで暗号化が必要になります。ただの文字列をinsertで入力しても作成できません。
今回はuserテーブルの中にダミーデータを入れていきます。
userテーブルの内容は以下になります。
基本的に必要なのは
- name
- password
database/migrations/マイグレーションファイル
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->foreignId('current_team_id')->nullable();
$table->string('profile_photo_path', 2048)->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
Code language: HTML, XML (xml)
コマンドで実行できるようにする
そして、次に作ったシーダをコマンドで実行したときに使ってもらえるようにします。
database/seeds/DatabaseSeeder.php
//~~~~~~~~省略~~~~~~~~
public function run()
{
$this->call([
UsersTableSeeder::class, // User追加のseederを呼び出すように追加
]);
}
Code language: PHP (php)
ダミーデータ作成
そしてコマンドを実行すると完成。
$ php artisan db:seed
phpmyadminを確認しに行くと、データベースの中身が埋まっていると思います。
まとめ
今回は、手動で何件かのダミーデータを作成しました。
ほかにも機械的に大量のダミーデータを作成することもできます。
CRUD機能を【Laravel8系】で作ってみる。 ダミーデータ入力
↑こちらも参考にしてみてくださいね。
参考ブログ↓
[…] […]
[…] […]
[…] […]