はじめに
本記事では、Laravelを用いて開発した掲示板アプリにおける、投稿・返信機能の設計と実装について詳しく紹介します。投稿内容を登録・削除・返信できるようにし、ユーザー単位の管理も行えるように設計しました。この記事では、実際に書いたコードの構成・各処理の役割・選定理由などを整理し、研修やレビュー発表でも役立つ内容にまとめています。
①実装した機能一覧
- 投稿機能(一覧、作成、確認、完了、削除)
- 返信機能(一覧、作成、確認、完了、削除)
- 投稿者・返信者に紐づいたユーザー管理
- セッション保存を使った入力内容の引き継ぎ
- 各種確認画面の導入
- softDeletesによる論理削除対応
②構成とファイルの役割
モデル(Eloquent)
コントローラー
③よくある質問と回答
Q1.Eager Loading (with()) を使った理由は?
A.パフォーマンス向上(N+1問題の回避)と、返信に紐づくユーザー情報を効率的に取得するためです
Q2.セッション(session())を利用する理由は?
A.バリデーション通過後、投稿内容を一時的に保持し、確認・完了画面で同じデータを再利用するためです。
Q3.formatDate() をコントローラーに実装した理由は?
A.複数画面で共通の日付フォーマットを使うため。共通処理を1つにまとめて管理しやすくしました。
Q4.findOrFail() の利点は?
A. 対象データが存在しない場合に自動で404エラーになるため、エラーハンドリングが明確になります。
④今後の課題・改善案
- フロントエンド(Vue.js)との連携による動的操作
- バリデーションエラーメッセージの多言語対応
- 投稿・返信の編集機能の追加
- Ajaxによる非同期送信対応
⑤最後に
ここまでの実装で、投稿・返信の基本機能を一通り習得し、LaravelのMVC構成を実感することができました。今後は、ユーザー体験向上のために、フロントエンドとの連携やUI改善にも挑戦していく予定です。