こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。
PHPフレームワーク Laravel入門 第2版
テーブルはマイグレーションで作成されているものとして、シーディングをやっていく
テーブルに適当にデータを登録して、LaravelでのDBの扱いに慣れる練習路する
コレクトクラスの使い方とかスコープwhereとか
シーディング
手順はこのような流れ
- シーディング用のスクリプトを作成
- スクリプトを変数
- シーディング実行
シーダファイル作成
$ php artisan make:seeder シーダファイル名
シーダファイルはdatabase/seeds
ディレクトリに作成される
この中のDatabaseSeeder.php
にシーダーファイルを登録する
シーディング処理
作成されたシーダーファイルを見てみるとrun
メソッドのみが書かれている
<?php
use Illuminate\Database\Seeder;
class ArticlesTableSeeder extends Seeder
{
public function run()
{
//
}
}
このrunメソッドにシードを作成する処理を書いていく
MySQLのカラム一覧の表示
DB(MySQL)でカラム名がわからなくなったときは以下コマンドでカラム一覧を取得できる。
mysql> show columns from articles;
出力例
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| created_at | datetime | NO | | NULL | |
| content | varchar(255) | NO | | NULL | |
| article_id | int(11) | NO | | NULL | |
+------------+------------------+------+-----+---------+----------------+
シード作成
//use Illuminate\Support\Facades\DB;を追加
public function run()
{
$param=[
'id'=>10,
'created_at'=>'1923-03-15 14:53:21',
'content'=>'テストcontent',
'article_id'=>123,
];
DB::table('articles')->insert($param);
}
シーダファイル登録
DatabaseSeeder.php
に登録する。
これはシーディングコマンドで実行されるスクリプト
ここに作ったものを呼び出す処理を書く
DatabaseSeeder.php
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
シーディングの実行
$ php artisan db:seed
mysqlで確認してみると確かにレコードが追加されていた
mysql> select * from articles;
出力
+----+---------------------+------------------+------------+
| id | created_at | content | article_id |
+----+---------------------+------------------+------------+
| 10 | 1923-03-15 14:53:21 | テストcontent | 123 |
mysql操作関連
データを消す
delete from テーブル名 where 条件式