PHP フレームワーク「Laravel 8」でお問い合わせシステム制作

PHPフレームワーク Laravel 8 でお問い合わせシステムを制作。Laravel 8 でのメール送信方法を習得する



練習1 : Rooting 設定

▼ お問い合わせシステムのルーティングを追加

routes/web.php


練習1 : レイアウトテンプレート生成

▼ レイアウトを定義する

resources/views/layouts/app.blade.php


練習2 : Controller 生成

▼ お問い合わせシステムのコントローラーを生成する

# php artisan make:controller ContactController
Controller created successfully.


▼ コントローラーファイルを編集

app/Http/Controllers/ContactController.php


練習3 : Mailable 生成

▼ メール送信の設定変更

.env

# MAIL_MAILER=smtp
MAIL_MAILER=sendmail
# MAIL_HOST=mailhog
MAIL_HOST=localhost

.env 設定が反映されない(bootstrap/cache/config.php が存在する)場合、設定キャッシュをクリア

# php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!


▼ Mailable 生成

# php artisan make:mail Contact
Mail created successfully.


▼ 生成したお問い合わせシステム Mailable ファイルを編集

app/Mail/Contact.php


練習4 : View 生成

▼ エラーメッセージの日本語化。英語用の設定ファイルをコピーし編集する

# mkdir ./resources/lang/ja
# cp ./resources/lang/en/validation.php ./resources/lang/ja/

resources/lang/ja/validation.php

//'email' => 'The :attribute must be a valid email address.',
'email' => ':attribute を確認してください',

//'required' => 'The :attribute field is required.',
'required' => ':attribute を入力してください',

//'attributes' => [],
'attributes' => [
    'email'   => 'メールアドレス',
    'contact' => 'お問い合わせ内容',
],


▼ フォームページ View ファイル作成

resources/views/contact/index.blade.php

▼ ブラウザからアクセス(https://laravel.sunabird.local/contact)


▼ 確認ページ View ファイル作成

resources/views/contact/confirm.blade.php

▼ ブラウザ表示


▼ 完了ページ View ファイル作成

resources/views/contact/thanks.blade.php

▼ ブラウザ表示


▼ 自分宛メール本文テンプレート作成

resources/views/contact/_temp_mail_me.blade.php

(自分宛のメール)

件名    Laravelからのお問い合わせ
送信者  info@sunabird.local
宛先    (自分宛メールアドレス)
メール本文
Laravelサイトからお問い合わせがありました。

メールアドレス : test@sunabird.local

お問い合わせ内容 :
お問い合わせテスト
テストテストテストテスト


▼ ユーザー宛メール本文テンプレート作成

resources/views/contact/_temp_mail_you.blade.php

(ユーザー宛のメール)

件名    お問い合わせありがとうございました
送信者  info@sunabird.local
宛先    test@sunabird.local
メール本文
お問い合わせありがとうございました。

内容を確認し担当者よりご連絡いたします。
何卒、宜しくお願いいたします。

--
(署名)


ポイント

  • View ファイル Blade テンプレートの {{ }} は自動エスケープ
  • エラーメッセージは resources/lang/ja/validation.php で設定(英語用をコピーして編集)
  • メール送信設定は .env ファイルを編集
  • メール毎にテンプレートファイルを作成(自分宛 / ユーザー宛)