ユーザ用ツール

サイト用ツール


サイドバー



最近の更新



Tag Cloud

タグ数量
9
10
1
3
1
2
17
7
1
1
4
13
4
1
2
309
1
9
2
7
21
5
1
31
3
3
1
6
1
1
46
1
3
3
1
1
1
1
1
1
33
46
7
9
10
8
10
3
21
2
9
2
2
6
9
1
1
6
12
4
3
3
2
1
8
2
4
1
6
30
2
12
5
3
1
1
2
3
2
1
3
4
3
3
4
2
2
1
1
2
1
2
1
2
1
27
2
1
3
2
2
1
1
2
3
17
5
9
1
1
2
16
2
6
1
2
12
1
3
1
1
4
11
1
6
4
2
7
1
3
3
13
1
4
1
1
10
3
1
17
3
1
5
1
2
1
1
2
9
2
2
3
2
1
3
1
3
1
2
2
2
1
2
6
1
4
3
5
1
3
1
3
3
2
1
1
30
1
3
3
1
1
1
5
5
1
36
2
4
2
1
2
2
3
1
1
1
4
1
2
1
3
1
1
1
2
5
2
5
2
1
1
1
5
3
2
4
4
1
2
2
25
1
1
3
4
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
19
7
1
5
1
1
3
1
2
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
4
2
1
1
2
2
2
1
1
2
1
1
12
1
1
1
1
1
1
1
1
1
1
1
1
1
11_php:02_framework:01_laravel:14_laravel_model

14 Laravel Model

Modelとは、MVCアーキテクチャ(Model View Controller)の「M」にあたる部分で、主にデータベースとの連携を行います。

LaravelにおけるModelは、Eloquent(DBのデータを操作する実装)の機能とビジネスロジックを持ったクラスです。

基本的には1つのテーブルに1つのModelが存在します。

1. Model作成

この場合だと、testテーブルを作成するという意味です。

php artisan make:model Test

$ ll app/Test.php 
-rw-r--r-- 1 matsui users 140 Jan 22 16:49 app/Test.php

Modelの中で、テーブル名を指定する場合

app/Test.php

class Test extends Model
{
    protected $table = 'test_tables';
}

2. Modelを使う

Migrateを用意(テーブル作成)

※make:migrationの決まりごと
小文字ならそのまま create_test_tables = test_tables
大文字ならスペースが入る createTestTables = test_tables

php artisan make:migration create_test_tables

例:

$ php artisan make:migration create_test_tables
Created Migration: 2019_01_22_042833_create_test_tables

$ ll database/migrations/2019_01_22_042833_create_test_tables.php 
-rw-r--r-- 1 matsui users 598 Jan 22 13:28 database/migrations/2019_01_22_042833_create_test_tables.php

Seedsを用意(初期データインサート)

php artisan make:seed TestTableSeeder

$ ll database/seeds/TestTableSeeder.php 
-rw-r--r-- 1 matsui users 296 Jan 22 14:11 database/seeds/TestTableSeeder.php

database/seeds/TestTableSeeder.php

public function run()
    {
        DB::table('test_tables')->insert([
           'name' => 'default_user',
        ]);

database/seeds/DatabaseSeeder.php

    public function run()
    {
        $this->call(TestTableSeeder::class);
    }

MigrateとSeeds実行

php artisan migrate
php artisan db:seed

db:seed を実行すると、database/seeds/DatabaseSeeder.phpが実行される。

Migrateと同時にSeedsも実行する場合

php artisan migrate --seed

ロールバック

最後の1個をロールバック

php artisan migrate:rollback --step=1
最後の1個だけ再度マイグレーションしたい場合

下記から必要なマイグレーション以外移動させておいてから、再度マイグレーション実施

database/migrations/

マイグレーション状態確認

$ php artisan migrate:status
+------+-----------------------------------------------------------------+-------+
| Ran? | Migration                                                       | Batch |
+------+-----------------------------------------------------------------+-------+
| Yes  | 2014_10_12_000000_create_users_table                            | 1     |
| Yes  | 2014_10_12_100000_create_password_resets_table                  | 1     |
| Yes  | 2016_01_01_000000_add_voyager_user_fields                       | 1     |
| Yes  | 2016_01_01_000000_create_data_types_table                       | 1     |
| Yes  | 2016_01_01_000000_create_pages_table                            | 16    |

コントローラ作成

$ php artisan make:controller TestController

$ ll app/Http/Controllers/TestController.php 
-rw-r--r-- 1 matsui users 121 Jan 22 14:54 app/Http/Controllers/TestController.php
11_php/02_framework/01_laravel/14_laravel_model.txt · 最終更新: 2021/06/24 16:09 by matsui

Yesterday:860 Today:888 Total:237501