Laravelでお問合せフォームの実装①テーブルに情報を登録

1363 回閲覧されました

みなさんこんにちは、jonioです。

Laravelでお問合せフォームを実装する方法を知ったのでアウトプットの記事を書きました。

2回に分けて解説しますが今回はお問合せフォームの内容をデータベースのテーブルに登録する所までを解説します。

 

モデルとマイグレーションファイルの作成

まずはお問合せの内容を保存する為のテーブルをデータベースに作成しないといけませんがモデル名は「Contact」とします。

モデルとマイグレーションファイルを↓のコマンドで作成します。

contactsテーブルにカラムを追加します。

 

カラムの追加

今回お問合せフォームに書く内容は以下とします。

  • 件名(titleカラム)
  • 本文(bodyカラム)
  • メールアドレス(emailカラム)

よってマイグレーションファイルに以下の記述をします。

そして「php artisan migrate」をするとデータベースのテーブルにカラムが作成されているのを確認できます。

次はデータベースのテーブルに登録できるカラムの設定をモデルにします。

 

テーブルに登録できるカラムの設定

テーブルに登録できるカラムの設定をする為にContactモデルに↓の記述をします。

それではルーティングを設定します。

 

ルーティング(お問い合わせフォーム)

お問い合わせフォームがあるページの表示とお問合せ内容を保存する為の記述を同時にします。

web.phpを↓にします。

次はコントローラーです。

 

コントローラー(お問い合わせフォーム)

お問合せフォーム用のコントローラーを↓のコマンドで作成します。

そしてContactコントローラーに↓の記述をします。

contactsテーブルにお問合せフォームの内容を保存できる様にする為に1行目があります。

13行目のcreateアクションがお問い合わせフォームのページを表示していて18行目のstoreアクションがお問い合わせフォームから送信した内容を保存しています。

また18行目の「Request $request」ですが気になる方は↓を読んで下さい。

お問い合わせフォームの件名(↓の赤枠)は21行目で文字数を設定してメールアドレス(↓の青枠)の文字数は22行目で設定しています。

最後はビューの記述をします。

 

ビュー(お問い合わせフォーム)

「Laravelのプロジェクト > resources > views」の下に「create.blade.php」を作成して↓の記述をします。

1行目〜9行目はお問い合わせフォームのバリデーションエラーに引っかかった場合にエラーの内容を表示する為の記述です。

10行目〜12行目はコントローラーの27行目の「’message’,’メールを送信したのでご確認ください’」を表示する為の記述です。

これでお問合せフォームの内容を送信すると↓の様にデータベースのテーブルに保存されます。

今回はここまでです。

次回は実際にメールを送信できる様にします。