~Web開発の旗手LaravelのDB仮想化とファサードを使いこなす~

Laravelにおける、テーブル間の関連付け…記述法が曖昧な方は、いらっしゃいませんか?ユーティリティクラスの関数を、viewから呼び出したい時に、手が止まる方はいらっしゃいませんか?あなたの悩み、解消します。

研修成果

Webアプリ開発では最強と言われるPHP + Laravelの開発効率は、全ての言語 + フレームワークの組み合わせと照らし合わせても、群を抜いて高いと言えます。

その開発効率を支える重要な要素が、Eloquentと呼ばれるDBの抽象化技術であり、ユーティリティクラスのスコープを柔軟にするためのFaçadeの存在です。

本研修では、DB抽象化の基礎知識と、テーブル間の関連付けの記述法、さらにファサードを使いこなす利点の理解と、実践的なスキルを短期間で習得することを目指します。

ともすると難解と言われるテーブル間の関連付けの記述、ファサード作成と利用のポイントを、ご一緒にマスターしていきましょう。

動的型付け言語のメリットを最大限生かしたEloquentと、柔軟なクラス設計を可能にするFaçadeを理解することで、あなたのWeb開発は、さらに柔軟に、拡張性に富む、堅牢なものへと成長していくことでしょう。

■ この講座で得られること
✅ テーブル間リレーション(1対多/多対多)の定義と活用
✅ EloquentでのCRUD操作を自在に使えるようになる
✅ Façadeを使ったサービス呼び出しと設計の柔軟性が理解できる
✅ Laravelの構造を「中から」理解し、より堅牢なWeb設計ができる

達成目標

  • Laravelの強力なEloquentとFacadeの基本から応用までを学び、実際の開発現場で活用できる実践的なスキルを習得。
  • 複雑なデータベース操作やフレームワークの機能を利用したコードを、簡潔かつ効率的に記述できるようになる。

対象

  • PHP+Laravelの理解を深め、効率的な設計と堅牢なアプリの開発に自信を付けたい方々
  • Laravelにおけるテーブル間の関連付け(一対多、多対多)の理解を深め、実装イメージを明確にしたい方々
  • viewからもコントローラからも呼び出せるファサードの作成方法と利用法を理解したい方々

前提:

1.PHP8.1以後とLaravel9の開発環境をあらかじめインストールしてご参加ください。

2.Docker、VirtualBox等仮想環境とエディタは、使い慣れた物をそのままお使い頂いて結構です。

PHP

※快適に受講するためにデュアルモニターの使用をお奨めします。

定員:12名様

担当講師:松田睦

マシン語によるゲーム開発時代から40年以上プログラムに関わってきました。Z80、8086系アセンブリ言語とC言語によるDOSやRPGイベント管理用独自言語、画像圧縮展開ツールなどの開発からスタートし、SE及びPG要員として、要件定義から設計、PG、テスト、保守、進捗管理等、通しで幾度も経験しています。 言語はC、C++、Java、PHP、C#、Python、ASP(VBA)等。 Java、PHPのフレームワーク各種。 DBはオラクル、PostgresSQL、MySQL、Microsoft SQL Server等。

実績:オンラインスクールにてJava、PHP、Pythonのメンターを五年、新入社員向け研修講師を三年勤め、文系出身の表現力を生かしたわかりやすい例えを用いた講義は、各所から好評を頂いています。

1回目:2026年12月17日(木)~18日(金)

カリキュラム

1日目(13:00~17:00)

【カリキュラム概要】~Eloquent入門と実践的データ操作~
Laravel概要とMVC構造の復習
Eloquent ORMとは(ActiveRecordパターン)
モデルの作成と命名規則
マイグレーションの基礎(php artisan migrate)
シーディングとファクトリ(開発時のデータ投入)
Eloquentでの基本的なCRUD操作
 all(), find(), create(), update(), delete()
スコープの基礎(where チェーン、ソート、limit)

【演習】
簡単な「Wiki管理システム」モデルを作成し、データベースと連携
CRUD画面を作らず、Tinkerまたはルート経由で操作を試す
Bookモデルを作成 → マイグレーションでカラム定義
シーダーでダミーデータを投入し、一覧取得・追加・更新・削除を体験

質問タイム

2日目(13:00~17:00)

【カリキュラム概要】~リレーションとFacade活用の実践~
モデル間のリレーション
 1対多(hasMany / belongsTo)
 多対多(belongsToMany、pivotテーブル)
リレーション経由のアクセス($user->postsなど)
リレーションのEager LoadingとLazy Loadingの違い
クエリビルダとEloquentの違い、併用の考え方
Facadeとは?(サービスコンテナとサービスプロバイダ)
Laravelの主要なFacadeの紹介(DB, Log, Storage, Validator など)
Facadeの内部構造を簡単に追う(Facadeクラスの仕組み)

【演習】
「ユーザーと投稿」のモデルを使って、1対多のリレーションを実装
リレーション経由でのデータ取得を体験し、with句によるEager Loadingの違いを比較
LogやValidatorなどのFacadeを実際に使った処理を書いてみる
余力があれば、独自Facadeの作成概要を紹介(※紹介レベル)

発表、質問タイム

※ご希望があれば
関数インデックスの話題もFacadesに絡めて触れる
Str::of()のような静的Facadeの連鎖的処理
関数的スタイルとFacadeの比較等