1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelで作る簡易掲示板アプリ①|投稿と返信機能の全体像と実装の流れ

Last updated at Posted at 2025-05-06

はじめに

本記事では、Laravelを用いて開発した掲示板アプリにおける、投稿・返信機能の設計と実装について詳しく紹介します。投稿内容を登録・削除・返信できるようにし、ユーザー単位の管理も行えるように設計しました。この記事では、実際に書いたコードの構成・各処理の役割・選定理由などを整理し、研修やレビュー発表でも役立つ内容にまとめています。

①実装した機能一覧

  • 投稿機能(一覧、作成、確認、完了、削除)
  • 返信機能(一覧、作成、確認、完了、削除)
  • 投稿者・返信者に紐づいたユーザー管理
  • セッション保存を使った入力内容の引き継ぎ
  • 各種確認画面の導入
  • softDeletesによる論理削除対応

②構成とファイルの役割

モデル(Eloquent)

スクリーンショット 2025-05-06 19.52.46.png

コントローラー

スクリーンショット 2025-05-06 19.53.54.png

③よくある質問と回答

Q1.Eager Loading (with()) を使った理由は?
A.パフォーマンス向上(N+1問題の回避)と、返信に紐づくユーザー情報を効率的に取得するためです

Q2.セッション(session())を利用する理由は?
A.バリデーション通過後、投稿内容を一時的に保持し、確認・完了画面で同じデータを再利用するためです。

Q3.formatDate() をコントローラーに実装した理由は?
A.複数画面で共通の日付フォーマットを使うため。共通処理を1つにまとめて管理しやすくしました。

Q4.findOrFail() の利点は?
A. 対象データが存在しない場合に自動で404エラーになるため、エラーハンドリングが明確になります。

④今後の課題・改善案

  • フロントエンド(Vue.js)との連携による動的操作
  • バリデーションエラーメッセージの多言語対応
  • 投稿・返信の編集機能の追加
  • Ajaxによる非同期送信対応

⑤最後に

ここまでの実装で、投稿・返信の基本機能を一通り習得し、LaravelのMVC構成を実感することができました。今後は、ユーザー体験向上のために、フロントエンドとの連携やUI改善にも挑戦していく予定です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?