1. TOP
  2. お役立ち情報
  3. PHPフレームワーク Laravel入門【連載第9回】テーブル作成方法とモデルについて

PHPフレームワーク Laravel入門
【連載第9回】
テーブル作成方法とモデルについて

投稿日
2020.03.11
更新日
2023.05.19
PHPフレームワーク Laravel入門【連載第9回】テーブル作成方法とモデルについて

前回のまとめ

前回はデータベース接続の確認を行いました。
今回はテーブル作成方法とモデルについて学習しましょう。

今回の作業手順

今回の作業手順を確認しましょう。

1.winusersテーブルを作成するためのwinusersマイグレーションファイルを作成
2.シーディング機能の利用
3.Winuserモデルの作成
4.Winuserモデルからwinusersテーブルのデータを取得する
5.動作確認

今回はシーディング機能とモデルの作成方法についてです。
しっかりと学習しましょう。

1、usersテーブルを作成するための
winusersマイグレーションファイルを作成

今回もマイグレーションファイルを作成するためのコマンドを実行します。
コマンドプロンプトを開いて下記のコマンドを入力しましょう。

php artisan make:migration winusers –create=winusers

コマンドプロンプトを開いて「php artisan make:migration winusers –create=winusers」コマンドを入力しましょう

今回の注目するべき点ですが、前回とは違いオプションの「–create」が付いています。
これはマイグレーションファイルで作成するテーブル名の指定が可能です。
そのため今回は「winusers」テーブルの作成を行います。ユーザー情報を格納するテーブルです。

マイグレーションファイルを作成後は下記のコマンドを入力しましょう。

php artisan migrate

「winusers」テーブルが作成されます。

「winusers」テーブルが作成されます

ではphpMyAdminでwinusersテーブルの構造を確認しましょう。

ではphpMyAdminでwinusersテーブルの構造を確認しましょう。

winusersテーブルの中には「id」「created_at」「updated_at」のカラムが存在します。
次は実際にテストデータを追加してみましょう。

2、シーディング機能の利用

Laravelにはテストデータをデータベースに格納が行える「シーダー」が存在します。
ではシーダーを作成して実際にテストデータを追加してみましょう。
まずはシーダーの作成のためコマンドプロンプトを開いて\testporjectまで移動し下記コマンドを入力してください。

php artisan make:seeder WinUsersTableSeeder

「php artisan make:seeder WinUsersTableSeeder」を入力してください

「Seeder created successfully」の緑色のメッセージが表示されると問題ありません。
「\testproject\database\seeds\WinUsersTableSeeder.php」ファイルが作成されました。

次に「\testproject\database\seeds\WinUsersTableSeeder.php」ファイルを開いてください。
12行目にrunメソッドが記載されています。この部分に先ほど作成したwinusersテーブルにデータ挿入を行います。

この部分に先ほど作成したwinusersテーブルにデータ挿入を行います

runメソッドに下記の処理を記述してください。

public function run()
 {
  // winusersテーブルにデータを追記
  DB::table(‘winusers’)->insert(
  [
   ’id’ => 1,
   ’created_at’ => now(),
   ’updated_at’ => now(),
   ]
  );
 }

runメソッドに下記の処理を記述してください

次にコマンドプロンプトで下記のコマンドを実行しましょう。

php artisan db:seed –class=WinUsersTableSeeder

このコマンドはWinUsersTableSeeder.phpを実行させるコマンドです。
正常に実行された場合、緑色の文字で「Database seeding completed successfully.」が表示されます。

正常に実行された場合、緑色の文字で「Database seeding completed successfully.」が表示されます

winusersテーブルに先ほど実行したデータが挿入されていることが確認できます。

winusersテーブルに先ほど実行したデータが挿入されていることが確認できます。

3、Winuserモデルの作成

ではWinuserモデルの作成を行いましょう。
まず「winusers」モデルではないのか?と考え方が鋭いといえます。
Laravelでは「テーブル名は複数形、モデル名は単数形」「モデル名の頭文字は大文字」という名前のルールが存在します。
そのルールに合わせて命名を行う必要があります。
ではコマンドプロンプトを開いて下記のコマンドを入力します。

「php artisan make:model Winusers」

正常に実行された場合、緑色の文字で「Model created successfully.」が表示されます。

正常に実行された場合、緑色の文字で「Model created successfully.」が表示されます

ではWinuserモデルのファイルを確認しましょう。
「\testproject\app」フォルダに移動すると「Winuser.php」が確認できます。

「\testproject\app」フォルダに移動すると「Winuser.php」が確認できます。

4、Winuserモデルから
winusersテーブルのデータを取得する

では実際にデータを取得しましょう。
HelloWorldControllerを用いて取得を行います。
最初にルーティングの設定を行います。
「\testproject\routes」からweb.phpを開いてください。
最終行に下記の処理を追記しましょう。

Route::get(‘/check’, ‘HelloWorldController@check’);

最終行に下記の処理を追記しましょう

次にコントローラーの記述です。
「\testproject\app\Http\Controllers」からHelloWorldController.phpを開いてください。
「use Illuminate\Http\Request;」の次の行に

// Winuserモデルの読み込み
use App\Winuser;

最終行に下記を記述してください。

// Modelのデータ確認
 public function check()
 {
  echo Winuser::all();
 }

次にコントローラーの記述です

5、動作確認

保存後下記のURLにアクセスしWebページを確認しましょう。
http://localhost/testproject/public/check

http://localhost/testproject/public/check

このようにWinusersテーブルからデータを取得することができました。

まとめ

  • シーディング機能
  • モデルの作成
  • Laravelの命名ルール

次回からLaravelを用いた簡単なプロフィール登録WEBアプリの作成を行っていきましょう。

関連記事