Laravel

【Laravel】掲示板を作成する(1)

そろそろ Laravel で何かモノを作ってみたくなったので、CGIの基本中の基本である掲示板を作成してみたいと思います。
結構な数の段階を踏みながら作成したので、細切れにしながらポストする予定。

今回は「データベースの設定」と、「マイグレーションでデータベースのテーブルを作成」する方法です。

1.各種設定

プロジェクトデータベースの作成

まず最初にプロジェクトで使用するデータベースを作成します。これはフレームワーク(Laravel)で行うのではなく、SQLを発行して作成する必要があるようです。

今回使用するデータベース名は適当に「laravelpjt」として作成します。
作成方法の一例を挙げておきます。

データベース設定

Laravelには .envconfig/database.php というデータベースの設定ファイルが2つあります。
まずは \config\database.php を確認します。

使用するデータベースは参考にしている本ではsqliteを使っていたのですが、やはり勝手知ったるMySQLにて制作してることにしました。
ということで下にはMySQLの設定を抜粋しています。

envメソッドに注目。第1引数の定数が設定されているとそれを読み込み、設定されていなかったら第2引数の値を読み込みます。

第1引数の定数はプロジェクトディレクトリ直下にある .env ファイルで指定しています。
ということで、envファイルを編集します。

編集ファイル:.env

どちらのファイルに設定しても良いとのことですが、公式ドキュメントによると環境ごとに変わる情報(DBのログイン名とかパスワードなど)は基本的に.envファイルに記載するようとのことです。

キャッシュのクリア

.envファイルの中身を書き換えた場合は、必ず下記コマンドを実行してキャッシュをクリアします。

デバッグ機能を有効化する

エラーの原因を把握することができるよう、デバッグ機能をONにします。

編集ファイル:app/config/app.php

※本番環境ではエラーの詳細情報をユーザに直接見せないために APP_DEBUG は false に設定します。

これでルーティングにメソッド名を指定し忘れたりした時などに詳しく何が起こっているのかを教えてくれるデバッグ画面が表示されるようになります。

エラー画面のキャプチャ

以下は実際にルーティングでミスったときのエラー内容です。

2.マイグレーションでデータベースのテーブルを作成

ここからデータベースのテーブルの作成に入ります。
posts, comments, categories という3つのテーブルを作成します。
テーブル名は複数形にするのがが命名規則のようです。

結果

マイグレーションで作成されたファイルは app\database\migrations に出力されます。
パスを確認すると下記3つのファイルが作成されていました。

  • 2020_06_16_115506_create_posts_table.php
  • 2020_06_16_115706_create_categories_table.php
  • 2020_06_16_115714_create_comments_table.php

マイグレーションで生成されたファイルにカラムの情報を書き込む

投稿テーブル

テーブルの仕様通りに記述します。

編集ファイル:app/database/migrations/2020_06_16_115506_create_posts_table.php

カテゴリテーブル

編集ファイル:app/database/migrations/2020_06_16_115706_create_categories_table.php

コメントテーブル

編集ファイル:app/database/migrations/2020_06_16_115714_create_comments_table.php

マイグレーションを実行してテーブルを作成

下記コマンドを発行してマイグレーションを実行します。

結果

データベース『laravelpjt』に各種テーブルがcreateされました。

categories, comments, posts以外の見覚えのないテーブルは、デフォルトで作成されていたマイグレーションファイルが実行されたものの様です。とりあえずは気にせず進めることとします。

ひとまず、掲示板作成の第1回目はここまでとします。

参考にしたサイト様

-Laravel
-, , , ,