WINGS(Www INtegrated Guide on Server-architecture)
Www INtegrated Guide on Server-architecture :
   ホーム お問い合わせ サーバーサイド環境構築設定 つぶやき ブックマーク レンタルサーバー 総合FAQ/訂正&ダウンロード このエントリーをはてなブックマークに追加        
  • 刊行書籍情報  [書籍マップ
  • オンライン公開 技術記事
  • シリーズ別書籍リスト
  • 「WINGS News」登録/解除
  • WINGSプロジェクト紹介
  • WINGSプロジェクトメンバ募集





【カテゴリ】 


これからはじめるLaravel実践入門  

これからはじめるLaravel実践入門

山田祥寛/著
SBクリエイティブ株式会社/発行
定価 4,510円
B5変版・ 624ページ・ 2色
ISBN 978-4-8156-2529-0
発刊日: 2026年4月01日

[Amazon.co.jpからオンライン購入する]

[お知らせ] 本書発売記念! Laravel 13対応 電子書籍(PDF)プレゼントキャンペーン

   FAQ 本書訂正 アンケート ダウンロード

本書の特徴

MVCの基本からReact連携によるモダン開発まで

LaravelによるWebアプリ開発の基礎から実践ノウハウまで、この1冊で着実に身につきます。書籍の後半では、LaravelとReact(Inertia.js)を組み合わせたモダンなフロントエンド開発や、認証・認可などの実践的なテーマも詳しく解説します。
サンプルコードは、サポートページよりダウンロード可能で、試しながら理解できます。
分野・レベル別マップ

  Contents


1 イントロダクション
 1-1 Laravel とアプリケーションフレームワーク
  1-1-1 フレームワークの歴史
  1-1-2 Laravelの特徴
      フルスタックのフレームワークである
      Model−View−Controller パターンを採用
      ドキュメントなどのリソースが充実
 1-2 Laravel を利用するための環境設定
  1-2-1 準備すべきソフトウェア
  1-2-2 Laravel Herdのインストール
  1-2-3 Visual Studio Codeのインストール

2 Laravel の基本
 2-1 はじめての Laravel
  2-1-1 補足:composer run devコマンドの実体
 2-2 コントローラーの基本
  2-2-1 コントローラークラスの作成
  2-2-2 コントローラークラスの基本構文
  2-2-3 ルーティングの基本
  2-2-4 補足:Route::getメソッドの別記法
      引数$actionを匿名関数で指定する
      コントローラー配下のルートをまとめる
 2-3 ビューの基本
  2-3-1 ビュー変数とテンプレートの呼び出し
  2-3-2 Bladeテンプレートの基本
      {{… }}の役割
  2-3-3 サンプルの実行
      補足:テンプレートのコンパイル処理
 2-4 モデルの基本
  2-4-1 Eloquentとは?
  2-4-2 データベース利用の準備
  2-4-3 マイグレーションの作成/実行
  2-4-4 シーダーの作成/実行
  2-4-5 モデルクラスの作成
  2-4-6 データ取得の基本
 2-5 Laravel の設定情報
  2-5-1 主な設定ファイルと構造
  2-5-2 環境変数ファイル(.env)
  2-5-3 アプリ固有の設定情報を追加/取得する
  2-5-4 補足:設定情報をキャッシュする
 2-6 VSCode + PHP Debug 拡張によるデバッグ
  2-6-1 デバッグ機能の有効化
  2-6-2 デバッグの実行

3 Laravel によるCRUD アプリ開発
 3-1 リソースコントローラーとリソースルート
  3-1-1 リソースコントローラーの作成
  3-1-2 リソースルートの定義
      リクエストパスに含まれる{book}の意味
 3-2 一覧画面の作成
  3-2-1 共通レイアウトの準備
  3-2-2 一覧画面の実装
 3-3 詳細画面の作成
  3-3-1 主キーでレコードを検索する - showアクション
  3-3-2 モデルの内容を単票表示する - show.blade.php
  3-3-3 別解:パラメーター取得、データ検索の異なる記法
      レコードが存在しない場合に404エラーを発生させる
      アクションにモデルオブジェクトを直接引き渡す
 3-4 新規登録画面の作成
  3-4-1 入力フォームの実装
  3-4-2 入力値の挿入処理
 3-5 編集画面の作成
  3-5-1 編集フォームの実装
  3-5-2 補足:新規登録画面をサブビュー対応にする
 3-6 削除機能の生成
  3-6-1 [削除]ボタンを実装する
  3-6-2 削除操作を実装する

4 ビュー開発
 4-1 埋め込み構文 - {{ … }} 構文
  4-1-1 文字列をHTMLとして埋め込む - {!!… !!}
      ダブルエンコーディングを無効化する
  4-1-2  {{… }}を無効化する - @構文
      複数の{{… }}式をまとめて無効化する
  4-1-3 テンプレートにコメントを加える - コメント構文
 4-2 ディレクティブ(条件分岐)
  4-2-1 式の真偽に応じて表示/非表示を切り替える - @if
      3 個以上の分岐を表現する - @elseif
  4-2-2 否定の条件で分岐する - @unless
  4-2-3 変数の有無で表示を分岐する - @isset/@empty
  4-2-4 環境によって表示を切り替える - @env
      @env ディレクティブの別構文
  4-2-5 式の値に応じて表示を切り替える - @switch
 4-3 ディレクティブ(ループ)
  4-3-1 配列の内容を順に出力する - @foreach
      連想配列をループする
      ループ変数を参照する
  4-3-2 コレクションが空の場合の出力を決める - @forelse
  4-3-3 その他の反復ディレクティブ
  4-3-4 ループを即座に脱出する - @break
  4-3-5 現在の周回をスキップする - @continue
 4-4 ディレクティブ(属性、その他)
  4-4-1 スタイルクラスを動的に設定する - @class
      スタイルプロパティを動的に設定する - @style
  4-4-3 任意のコードを実行する - @php
      補足:@useディレクティブ
 4-5 ディレクティブの自作
  4-5-1 シンプルなディレクティブ
      戻り値はなぜ<?php 〜?>
  4-5-2 自作の条件分岐ディレクティブ
  4-5-3 補足:ヘルパー関数
      ヘルパー関数の準備
      ヘルパー関数の利用
 4-6 コンポーネント
  4-6-1 コンポーネントの基本
      コンポーネントの利用方法
      コンポーネントの定義
  4-6-2 未定義の属性を引き渡す - 属性バッグ
      属性バッグの主なメソッド
  4-6-3 要素配下のコンテンツを受け渡す - スロット
      名前付きスロット
      例:レイアウトに複数のセクションを設ける
      コンポーネントクラスのpublicメンバー参照
      応用:スロット経由でテンプレートを引き渡す
  4-6-4 補足:複数のコンテンツを追加する - スタック
  4-6-5 さまざまなコンポーネントの記法
      匿名コンポーネント
      匿名インデックスコンポーネント
      親→子コンポーネントに属性を受け渡す - @aware
      インラインコンポーネントビュー
      動的コンポーネント
  4-6-6 補足:サブビュー
      @include Xxxxx ディレクティブ
      コレクションビュー
 4-7 ビューコンポーザー
  4-7-1 ビューコンポーザーの基本
  4-7-2 ビューコンポーザーのクラス化
  4-7-3 補足:ビュークリエイター

5 モデル開発(クエリ)
 5-1 複雑な条件で検索を実行する - クエリビルダー
  5-1-1 クエリビルダーの基本
      クエリビルダーの結果を取得する
  5-1-2 基本的な条件式を設定する - whereメソッド
  5-1-3 補足:組み立てられたクエリの確認
      ddメソッド
      補足:イベントリスナー
  5-1-4 「=」比較以外の比較演算子を利用する - where/whereXxxxx メソッド
      JSONデータ型の内容を検索する
      条件式をAND演算子で連結する
      条件式をOR 演算子で連結する
      AND/OR 演算子を組み合わせる
      否定の条件式を作成する
      同じ条件式(演算)をまとめて適用する
  5-1-6 取得したレコード群の合計/平均などを求める - 集計メソッド
      その他の集計メソッド
      存在するかどうかにだけ関心がある場合
  5-1-7 レコードを並べ替える - orderByメソッド
      ソート式を削除/上書きする - reorder メソッド
      ランダムに並べ替える
      レコードを日付順に並べる
  5-1-8 特定範囲のレコードだけを取得する - offset/limitメソッド
      例:簡易なページング機能を実装する
  5-1-9 ページング付きの一覧画面を生成する - paginateメソッド
      paginateメソッドの基本
      ページャーのカスタマイズ
  5-1-10 取得列を明示的に指定する - selectメソッド
      取得列を「生の式」で指定する
      補足:生の条件式を表す
      重複した行を除去する
  5-1-11 データを集計する - groupByメソッド
      集計結果をもとにデータを絞り込む - havingメソッド
  5-1-12 複数のクエリ結果を結合する - unionメソッド
 5-2 より高度なデータの取得
  5-2-1 条件付きでWHERE 句を着脱する - whenメソッド
  5-2-2 ある問い合わせの結果に基づいてデータを検索する - サブクエリ
      単一値を生成するサブクエリ
      複数値を生成するサブクエリ
      サブクエリでなんらかの結果が存在するかを確認する
  5-2-3 よく利用する条件句を事前に準備する - ローカルスコープ
      ローカルスコープの基本
  5-2-4 既定で適用されるスコープを定義する - グローバルスコープ
      グローバルスコープの基本
      グローバルスコープの除外
      グローバルスコープのクラス化
 5-3 レコードの登録/更新/削除
  5-3-1 データの新規登録
      モデルの作成から保存までを一気に実行する
      レコードのid値を取得する
      レコードの重複エラーを無視する
      レコードが重複する場合に更新する - upsertメソッド
      存在しない場合にだけレコードを作成する - firstOrCreateメソッド
  5-3-2 複数のレコードをまとめて更新する - updateメソッド
      JSON列にデータを登録する
  5-3-3 レコードを削除する
  5-3-4 レコードを論理削除する
      補足:論理削除したレコードの操作
  5-3-5 不要になったデータを整理する - prunableメソッド
  5-3-6 トランザクション処理を実装する - transactionメソッド
      トランザクション処理の挙動を確認する
      トランザクション分離レベルを指定する
  5-3-7 補足:その他のデータ操作メソッド

6 モデル開発(リレーション)
 6-1 リレーションシップと命名規則
  6-1-1 参照元テーブルから参照先テーブルにアクセスする - belongsToメソッド
      リレーション機能によるアクセス
  6-1-2 1:nの関係を定義する - hasManyメソッド
  6-1-3 1:1の関係を表現する - hasOneメソッド
      リレーション機能によるアクセス
  6-1-4 m:nの関係を表現する(1) - belongsToManyメソッド
 6-2 リレーションのカスタマイズ
  6-2-1 紐づけのキーを変更する
  6-2-2 テーブルを跨いだ1:nの関係を表現する - hasManyThroughメソッド
      モデルの定義
      hasManyThrough関係を利用した例
  6-2-3 関係先が存在しない場合の既定モデルを準備する - withDefaultメソッド
  6-2-5 複数の関連モデルから特定のひとつを取得する(2)- ofManyメソッド
      関連を取得する際の抽出条件を追加する
  6-2-6 中間テーブルの情報を取得する - withPivotメソッド
  6-2-7 中間テーブル列を利用したモデルのフィルタリング - wherePivotメソッド
  6-2-8 中間テーブル列による関連モデルの並べ替え - orderByPivotメソッド
 6-3 ポリモーフィック関係
  6-3-1 ポリモーフィック関連のためのテーブル
  6-3-2 ポリモーフィック関連のためのモデル
  6-3-3 ポリモーフィック関係による参照
      単一のメモを取得する
      複数のメモを取得する
      子モデルから親モデルにアクセスする
  6-3-4 m:n関係におけるポリモーフィック関係
 6-4 リレーションを介したクエリの構築
  6-4-1 関連先のテーブルを絞り込む
      or 条件の連結に注意
  6-4-2 BelongsTo関係のモデルで検索する - whereBelongsToメソッド
  6-4-3 関連するモデルが存在するかを判定する - hasメソッド
  6-4-5 N+1クエリ問題を解決する - withメソッド
      withメソッドの別構文
      Eager Loadするモデルを宣言する
  6-4-6 関係モデルによる集計を実行する - withXxxxx メソッド
      withCountメソッドの別構文
      そのほかの集計メソッド
 6-5 関連モデルの登録/更新/削除
  6-5-1 関連モデルの挿入 - saveメソッド
  6-5-2 関係モデルを作成/保存する - createメソッド
  6-5-3 関係モデルの更新 - pushメソッド
  6-5-4 関係モデルの紐づけを更新する - associateメソッド
  6-5-5 m:n関係での紐づけを追加/削除する - attach/detachメソッド
      紐づけを同期する - syncメソッド
      紐づけをオン/オフする - toggleメソッド
      追加情報を更新する - updateExistingPivotメソッド

7 モデル開発(属性、マイグレーション、ファクトリー)
 7-1 属性値の操作
  7-1-1 属性の取得時に値を変換する - アクセサー
      例:複数の属性をもとに値を生成する
  7-1-2 属性値の設定時に値を整形する - ミューテーター
      例:ミューテーターで検証機能を実装する
      例:複数属性の一括更新
  7-1-3 属性値の型を変換する - 属性キャスト
      Stringable型
      encrypted型
      ArrayObject型
      Enum型
  7-1-4 例:キャスト型を自作する
      補足:値オブジェクトをキャスト可能にする
 7-2 マイグレーション
  7-2-1 テーブルの作成
      列定義メソッド(データ型)
      列修飾メソッド(列属性)
      テーブル/インデックス操作
  7-2-2 マイグレーションファイルで利用できる主なメソッド
      列を追加する
      列を更新する
      列を削除する
  7-2-3 マイグレーションの実行
      接続先データベースを変更する - databaseオプション
      実行するマイグレーションのパスを設定する - pathオプション
      詳細メッセージを抑制する - silentオプション
      生成されるSQL 命令だけを確認する - pretendオプション
      本番環境でマイグレーションを実行する - forceオプション
  7-2-4 スキーマファイル
      スキーマファイルの実行
 7-3 モデルファクトリー
  7-3-1 ファクトリーの基本
  7-3-2 モデル属性のカスタマイズ
      属性の書き換え(基本)
      循環する値を指定する
      循環する値をクロージャーで作成する
      属性の変更ルールをメソッドにまとめる
  7-3-3 リレーションを伴うデータ生成
  7-3-4 リレーション関連のマジックメソッド
      forXxxxx メソッド

8 コントローラー開発
 8-1 レスポンス
  8-1-1 Responseオブジェクトの基本
  8-1-2 テンプレート指定時に応答ヘッダーを付与する
  8-1-3 JSON形式の応答を生成する
      補足:jsonメソッドの省略形
  8-1-4 指定されたファイルをダウンロードさせる
      注意:リクエストデータからファイルパスを指定しない
  8-1-5 任意のデータを送出する
  8-1-6 処理をリダイレクトする
      リダイレクトに伴うステータスコードを制御する
      補足:オープンリダイレクト脆弱性を防ぐ
 8-2 リクエスト
  8-2-1 ポストデータ/クエリ情報を取得する
      汎用的な取得メソッド - inputメソッド
      プロパティ構文でアクセスする - 動的プロパティ
      データ型を明示して入力値を取得する - date、enumなど
  8-2-2 リクエストヘッダーを取得する
      補足:サーバー環境変数を取得する
  8-2-3 ファイルをアップロードする
      アップロードのエラー処理
  8-2-4 ファイルをアップロードする(2) - データベースへの保存
 8-3 状態管理
  8-3-1 クッキーを読み書きする
  8-3-2 セッションを利用する
      セッションのしくみ
      セッションの設定
      セッションの基本
      別解:Sessionオブジェクト経由でのアクセス
  8-3-3 フラッシュ
      フラッシュの基本
      フラッシュ関連のメソッド
 8-4 入力値検証
  8-4-1 Laravel で利用できる検証機能
  8-4-2 検証機能の基本
  8-4-3 そのほかの検証ルール
      日付ルール - after:date
      dimensions:attr=value, …
      enum検証
      email 検証
  8-4-4 検証の挙動を制御するルール
      検証エラー時に以降の処理を中断する - bail
      ある項目の値に応じて検証を実行する - exclude_if
  8-4-5 検証ルールの自作
      検証ルールの基本
      自作ルールにパラメーターを引き渡す
      複数の項目に跨って入力値を検証する
      簡単なルールをクロージャーで表現する
  8-4-6 入力値検証を分離する - フォームリクエスト
      フォームリクエストの基本
  8-4-7 フォームリクエストの拡張
      エラーメッセージのカスタマイズ
      検証エラー時の挙動を決めるパラメーター
      検証処理のための前処理

9 Laravel アプリの構造
 9-1 サービスと依存性注入
  9-1-1 依存性注入とは?
  9-1-2 依存性の解決
      コンストラクターインジェクション
      @injectディレクティブ
      appヘルパー
      callメソッド
  9-1-3 自作サービスの登録
  9-1-4 サービスのさまざまな登録方法
      クロージャーによるインスタンス化
      シングルトンなサービスを注入する
      属性構文で紐づけを管理する
      プリミティブ値を注入する
      複数のサービスをまとめて登録する
      サービスを遅延ロードする
      複数の実装をまとめて注入する
  9-1-5 補足:ファサード
      ファサードのしくみ
 9-2 ロギング
  9-2-1 ログの基本
      ログレベルによるフィルタリング
  9-2-2 ログの出力先を変更する - チャンネル設定
      既定のチャンネル設定
  9-2-3 既定で用意されたチャンネル
      非推奨警告に関するログ
      例:Slackにログを出力する
  9-2-4 ログメッセージの出力形式をカスタマイズする
      Formatter の基本
      例:コンソールへのログをカラー表示する
  9-2-5 ログメッセージに情報を追加する「Processor」
      Processor の挙動を変更する
      Processor の自作
  9-2-6 ログにコンテキスト情報を追加する
      コンテキストの基本
      共通のコンテキスト情報を設定する
  9-2-7 独自のチャンネルを作成する
 9-3 ルーティング
  9-3-1 ルーティングの基本
      HTTPメソッドによるルートの振り分け
      ルート定義を確認する
      補足:ルートの名前
  9-3-2 ルートパラメーター
      ルートパラメーターの基本
      ルートパラメーターのさまざまな表現
  9-3-3 リソースを伴うルート
      生成するルートを限定する - only /exceptオプション
      ルートの名前を変更する - namesオプション
      ルートパラメーターの値を変更する - parametersオプション
      ルートパラメーターの制約条件を付与する - wheresオプション
      メソッドとして指定するパターン
      階層を伴うリソースルート
      リソースの「浅い」ネストを表現する - shallow オプション
  9-3-4 ルート定義のグループ化
      ルートに共通のパス接頭辞を付与する
      ルート名に共通の接頭辞を加える
      例:ルート群へのトラフィックを制限する
  9-3-5 特殊なルート表現
      アクションを経由しないルートを定義する
      別のルートにリダイレクトする
      シングルアクションコントローラー
      フォールバックルート
 9-4 ミドルウェア
  9-4-1 ミドルウェアの基本
  9-4-2 後処理のためのミドルウェア
      一般的なミドルウェアの構文
  9-4-3 ミドルウェアの登録方法
      グローバルミドルウェア(標準)
      ルートグループミドルウェア
      ルートミドルウェア
      コントローラーミドルウェア
      コントローラーミドルウェア(クロージャー)
  9-4-4 ミドルウェアの管理テクニック
      ミドルウェアをグループ化する
      標準で用意されたミドルウェアグループ
      ミドルウェアに別名を付与する
      ミドルウェアにパラメーターを追加する

10 クライアントサイド開発
 10-1 フロントエンド開発の選択肢
  10-1-1 JavaScriptレスが特長の「Livewire」
  10-1-2 React/Vue.jsとのシームレスな連携を支える「Inertia.js」
  10-2-1 Inertiaプロジェクトの作成
 10-2 Inertia の基本
  10-2-2 Inertiaアプリ起動の流れ
  10-2-3 サーバーサイドに関わる設定
      補足:ミドルウェアをアプリに登録する - app.php
  10-2-4 クライアントサイドに関わる設定
      フロントエンド側のビルド設定を定義する - vite.config.ts
      JavaScriptコードの基点を定義する - app.tsx
      ルートテンプレートを準備する - app.blade.php
  10-2-5 トップページの実装を確認する
      ルーティング(アクション)定義
      トップページを描画する - welcome.tsx
 10-3 Inertia で書籍管理アプリを実装する
  10-3-1 書籍一覧画面
  10-3-2 既存書籍の詳細/削除画面
  10-3-3 新規書籍の登録画面
 10-4 認証機能
  10-4-1 認証の基本設定
  10-4-2 認証に関わるルート情報
      補足:メール認証を有効にする
  10-4-3 ログイン機能
  10-4-4 ログアウト機能
  10-4-5 新規ユーザー登録画面
  10-4-6 パスワードリセット画面
      トークン要求フォーム
      パスワードリセット画面
  10-4-7 パスワードの再確認
      パスワードの再確認を有効化
 10-5 認可(ゲート/ポリシー)
  10-5-1 ゲートの基本
  10-5-2 ポリシーの基本

11 Laravel の高度な機能
 11-1 電子メールを送信する - Mailable
  11-1-1 メール機能を利用する準備
  11-1-2 メール送信の基本
  11-1-3 複数フォーマットでのメール配信
      HTMLメール送信の基本
      multipart/alternative 形式のメール
      Markdown形式のメール
      markdownメールのカスタマイズ
  11-1-4 添付ファイル付きのメールを送信する
      Attachment 生成のためのメソッド
      画像ファイルのインライン添付
  11-1-5 メールを非同期で送信する
 11-2 時間のかかる処理を非同期に実行する - キュー
  11-2-1 キューの設定
  11-2-2 ジョブの登録から実行まで
  11-2-3 失敗ジョブの制御
      再試行/失敗に関わるパラメーター
      再試行/例外に関わるメソッド
      ModelNotFoundException 例外への対処
      失敗ジョブの保存先
      失敗ジョブが発生した時の処理を実装する
      失敗ジョブを確認/再試行する
      FailOnExceptionミドルウェアによる例外判定
  11-2-4 応用的なジョブ管理 - 条件付き実行からトランザクション連携
      条件付きでジョブを登録する
      ジョブの実行を遅延する
      ジョブの実行を遅延する(トランザクション連携)
      ジョブを分類する
      ジョブの一意性を保証する
      ジョブの一意性を保証する(キー設定)
 11-3 イベントに応じた処理を実装する - リスナー
  11-3-1 なぜイベントか?
  11-3-2 イベント/リスナーの基本
  11-3-3 Laravelの標準イベント
  11-3-4 さまざまなイベント/リスナーの設定方法
      リスナーをクロージャーで定義する
      複数のイベントをまとめて監視する - イベントサブスクライバー
      リスナーの処理内容をキューに投入する
  11-3-5 補足:Eloquentモデルのイベント
      $dispatchesEventsプロパティ
      bootedメソッド
      オブザーバー
 11-4 アプリの国際化対応
  11-4-1 国際化対応の基本
  11-4-2 ロケールを動的に設定する方法
      ブラウザーの言語設定に応じてロケールを変更する
      ルートパラメーター経由でロケールを設定する
  11-4-3 例:laravel-langパッケージによる言語ファイルの準備
      フィールド名の日本語化
      独自のルールクラスを日本語化ファイルに対応する
  11-4-4 言語ファイルのさまざまな記法
      翻訳文字列をキーとする
      単数/複数形の翻訳を区別する

Column
 識別子の記法
 生成 AI による開発支援を提供する「Laravel Boost」
 Herd から新規プロジェクトを作成する
 Laravel Boost のインストール方法
 メンテナンスモード(基本)
 メンテナンスモード(動作オプション)
 Laravel をより深く学ぶための参考図書

本ページへのリンクには、このロゴをご利用ください。


著作権情報個人情報保護について広告掲載についてRSSフィードについて
出版社の方々へ会社概要スタッフ紹介サイトマップ  
書籍/記事に関するご質問/お問い合わせは「WINGSお問い合わせフォーム」をご利用ください。
Copyright(c) 1998-2026,Yamada Yoshihiro.  All Right Reserved.