LaravelのPolymorphicリレーションシップを活用する実践パターン
- 2026.02.20
概要:Polymorphic(ポリモーフィック)リレーションは、複数の異なるモデルが「同じ関連(コメント・画像・いいね等)」を共有できる仕組みです。テーブル設計をシンプルに保ちながら、関連データの追加・拡張に強い構成を作れます。一方で、参照整合性・パフォーマンス・削除時の扱いなど落とし穴もあるため、 […]
概要:Polymorphic(ポリモーフィック)リレーションは、複数の異なるモデルが「同じ関連(コメント・画像・いいね等)」を共有できる仕組みです。テーブル設計をシンプルに保ちながら、関連データの追加・拡張に強い構成を作れます。一方で、参照整合性・パフォーマンス・削除時の扱いなど落とし穴もあるため、 […]
Laravelをバックエンド(API)として、Vue.jsをフロント(SPA)として構築すると、画面遷移の高速化・UIのリッチ化・フロント/バックの責務分離が進めやすい。一方で、ルーティングの衝突、認証(Cookie/トークン)、CORS/CSRF、ビルド成果物の配信、404の扱いを雑にすると、開発 […]
ミドルウェアは、コントローラに入る前/レスポンスを返す前後に「横断的な処理」を挟む仕組み。認証・CSRFだけでなく、IP制限、メンテナンス制御、リクエストID付与、APIキー検証、利用規約同意チェック、ロール制御、ヘッダ付与、レート制限などに使える。この記事は、カスタムミドルウェアの作り方から、ルー […]
Laravelのソフトデリート(Soft Deletes)は、レコードを物理削除せずに「削除済み」として扱う仕組み。誤操作からの復元、監査要件、履歴保持に強い一方で、検索・ユニーク制約・関連テーブル・集計・権限などを考えずに入れると「消したはずのデータが残る」「復元できない」「ユニークが衝突する」な […]
Laravelのソフトデリート(Soft Deletes)は、レコードを物理削除せずに「削除済み」として扱う仕組み。誤操作からの復元、監査要件、履歴保持に強い一方で、検索・ユニーク制約・関連テーブル・集計・権限などを考えずに入れると「消したはずのデータが残る」「復元できない」「ユニークが衝突する」な […]
LaravelのTask Schedulingは、複数のcronをサーバーに散らす代わりに「cronは1本だけ」「実行内容はLaravel側でコード管理」に寄せられる仕組み。定期メール、集計、ファイル生成、期限切れ処理、外部API同期などを、実行間隔・重複防止・失敗通知・ログ・ロックまで含めて運用設 […]
Laravelのイベント/リスナーは「ある出来事が起きたら、関連処理をあとから追加できる」仕組み。コントローラやサービスに処理を詰め込まず、イベントを境界にして副作用(通知、ログ、外部API連携、集計更新など)を分離すると、機能追加や仕様変更が安全に進む。この記事は、イベント設計の考え方から、実装・ […]
Laravelの不具合対応は「原因の切り分けが速いかどうか」で作業時間が決まる。闇雲にログを増やすより、再現条件の固定→観測ポイントの設置→原因の絞り込み→恒久対策(テスト・監視)までを手順化すると、同じ種類の障害を短時間で処理できる。この記事は、Laravel標準機能(ログ、例外、tinker、H […]
Laravel Vaporは、LaravelアプリをAWSのサーバーレス基盤へ載せるための実運用向けプラットフォーム。サーバ管理を減らせる一方で、Lambda特有の制約(コールドスタート、ローカルディスクの扱い、長時間処理、ネットワーク、ログの見え方など)を前提に“アプリ側の作法”を整えないと、デプ […]
Laravelでマイクロサービスを進めるときは「とりあえず分割」ではなく、境界の決め方・通信方式・データ整合性・デプロイと監視まで含めて設計しないと、モノリスより遅くて壊れやすい構成になりやすい。最初に“分割する理由”を言語化し、境界(ドメイン/責務)と運用(障害時・変更頻度・組織構造)を合わせるこ […]