第26回 Laravelでテーブルとデータの作成
公開日:2021-04-12 更新日:2021-04-12
1. 概要
2. 動画
3. テーブルの作成
3. 1 マイグレーションの作成
php artisan make:migration マイグレーション名
(例)
php artisan make:migration create_articles_table
出力先 : database/migrations/
3. 2 マイグレーションの実装
database/migrations/ 配下に出力されたファイルを開き、up() にテーブルの定義をします。
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});
}
3. 3 マイグレーションの実行
php artisan migrate
マイグレーションを修正して、マイグレーションを再実行したい場合には、以下のコマンドを実行します。
【注意】テーブルが再作成されるため、データは全て削除されます。
php artisan migrate:refresh
php artisan make:migration マイグレーション名
(例)
php artisan make:migration create_articles_table
出力先 : database/migrations/
database/migrations/ 配下に出力されたファイルを開き、up() にテーブルの定義をします。
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});
}
3. 3 マイグレーションの実行
php artisan migrate
マイグレーションを修正して、マイグレーションを再実行したい場合には、以下のコマンドを実行します。
【注意】テーブルが再作成されるため、データは全て削除されます。
php artisan migrate:refresh
php artisan migrate
マイグレーションを修正して、マイグレーションを再実行したい場合には、以下のコマンドを実行します。
【注意】テーブルが再作成されるため、データは全て削除されます。
php artisan migrate:refresh
4. データの作成
4.1 シーダーの作成
php artisan make:seeder シーダー名
(例)
php artisan make:seeder ArticlesTableSeeder
出力先:database/seeders
4.2 シーダーの実装
public function run()
{
$faker = \Faker\Factory::create();
for ($i = 1; $i<= 10; $i++) {
\DB::table('articles')->insert([
'title' => $faker->word(),
'body' => $faker->text(),
]);
}
}
4.3 DatabaseSeeder.php の修正
database/seeders/DatabaseSeeder.php から作成したシーダーを呼び出すようにします。
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
php artisan make:seeder シーダー名
(例)
php artisan make:seeder ArticlesTableSeeder
出力先:database/seeders
public function run()
{
$faker = \Faker\Factory::create();
for ($i = 1; $i<= 10; $i++) {
\DB::table('articles')->insert([
'title' => $faker->word(),
'body' => $faker->text(),
]);
}
}
4.3 DatabaseSeeder.php の修正
database/seeders/DatabaseSeeder.php から作成したシーダーを呼び出すようにします。
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
5. 複数形の確認
Laravel では、モデルを単数形、テーブル名を複数形にする命名規則があります。
例外もあるため、事前に Str::plural() を使って確認しておくと良いです。
例外もあるため、事前に Str::plural() を使って確認しておくと良いです。
use Illuminate\Support\Str;
var_dump(Str::plural('article')); // articles
var_dump(Str::plural('family')); // families
var_dump(Str::plural('people')); // people
var_dump(Str::plural('data')); // data