BackEnd

Laravelのコントローラの基礎

投稿日:

はじめに

今回の記事では、PHPのフレームワークであるLaravelのルーティングやコントローラに関する基礎知識を紹介します。Laravelの基礎知識に関してはこちらをご覧ください。

ルーティング

Laravelのルートティングは、routesディレクトの web.php と api.php に定義します。

ルーティングの定義方法は3種類あり、1つ目はクラス名とメソッド名を記述する方法です。以下の例では、 /home 宛のリクエストを HomeController の index メソッドで処理します。

2つ目はクラス名のみを指定する方法です。メソッド名を省略した場合は __invoke メソッドで処理します。

3つ目はクロージャで記述する方法です。

使用可能なメソッド

Laravelで使用できるメソッドは下記のとおりです。

以下のように複数のメソッドに対応したルートを定義することもできます。

また、Route::any を使うとすべてのメソッドに対応したルートを定義することができます。

リダイレクト

他のURIにリダイレクトさせたい場合は Route::redirect を使います。

Viewの返却

コントローラ側で処理せずに特定のビューを返却すればよい場合は、 Route::view を使います。第2引数にはビュー名を渡します。ビューへデータを渡したい場合は第3引数に配列の形で渡します。

ルートパラメータ

CRUDの画面などのように、ルート中のURIセグメントを取得したい場合は以下のようにします。

パラメータ名の後に ? をつけるとパラメータを省略することができます。この場合は、デフォルト値を設定する必要があります。

ミドルウェア

ルートグループ内のすべてのルートにミドルウェアを指定するには Route::middleware メソッドを使用します。このとき、ミドルウェアは定義された順番で実行されます。

プレフィックス

ルートグループ内のすべてのルートに特定のプレフィックスを指定するには Route::prefix メソッドを使用します。

バリデーション

Laravelではコントローラ側でバリデーションを行います。バリデーションの方法は2種類あり、1つ目はコントローラに直接記述する方法で、2つ目はフォームリクエスに記述する方法です。

コントローラでバリデーション

コントローラでバリデーションする場合は以下のようになります。バリデーションに失敗した場合は例外が投げられます。

バリデーション失敗時に特定の処理をしたい場合は、以下のようにします。

フォームリクエストでバリデーション

フォームリクエストは以下のコマンドで作成できます。

フォームリクエストでバリデーションする場合は以下のようになります。

また、エラーメッセージのカスタマイズは以下のようにします。

さいごに

Laravelのルート定義とバリデーションの書き方を紹介しました。

おすすめ書籍

初めてのPHP  PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応  動かして学ぶ!Vue.js開発入門 (NEXT ONE)  確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

rails

RailsでS3に画像をアップロードする

1 はじめに2 今回やりたいこと3 下準備3.1 ImageMagickをインストールする3.2 Gemをインストールする4 レコード生成時にファイルを指定してアップロードする4.1 アップローダを作 ...

rails

Shrineをモデルに関連付けないで使用してハマったこと

1 はじめに2 アップロード時にリサイズする3 アップロード時のバリデーション4 アップロード時に古いファイルを削除する5 さいごに はじめに ShrineはRailsでのアップロードを簡単に行えるよ ...

Go言語

Go言語、ゴルーチン(goroutine)で並列処理を

1 はじめに2 ゴルーチン2.1 go文2.2 ゴルーチンの終了条件2.3 WaitGroup3 チャネル3.1 チャネルの型3.2 チャネルの生成3.3 チャネルの送受信3.4 チャネルとゴルーチン ...

Go言語

Go言語でGinkgoを利用してBDDしてみた

1 はじめに2 BDDとは3 Ginkgoについて3.1 Ginkgoの概要3.1.1 Describe3.1.2 Context3.1.3 It3.1.4 JustBeforeEach3.1.5 B ...

rails

deviseを使ってユーザ登録フォームを作る

1 はじめに1.1 前提条件2 deviseについて2.1 deviseとは2.2 deviseでできること3 登録処理の実装3.1 Gemのインストール3.2 deviseのインストール3.3 デフ ...

フォロー

follow us in feedly

blog-page_side_responsive

東京改造計画(NewsPicks Book)
2019年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。