0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Laravel】シーディング

Posted at

こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。
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 条件式
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?