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

【Puma】アプリサーバのチューニング

1 はじめに2 チューニングで注意する項目3 子プロセスの数3.1 最低3つの子プロセスを割り当てる3.2 最大子プロセス数3.3 CPUコア数と子プロセス数3.4 なぜPumaの子プロセス数を増やす ...

rails

Ruby2.4でCookieを手動で復号する際に発生したエラーの対処

1 はじめに1.1 前提条件2 発生したエラー2.1 実際のコード2.2 エラー詳細2.3 原因3 どう対処したか3.1 修正後のコード はじめに こんにちは、onoです。 現在開発中のアプリケーショ ...

Laravelの開発環境をdocker-composeで一から構築してみる

1 はじめに2 nginxでwebサーバを立てる2.1 default.conf作成2.2 index.html作成2.3 nginxコンテナ起動3 nginxでPHP-FPMを動作させる3.1 do ...

laravel logo

Laravelのバリデーションtips

1 はじめに2 配列のバリデーションでRule::uniqueを使う時のカラム名を指定したい3 配列バリデーションのエラーメッセージ制御4 カスタムバリデーションで、他の属性名を参照したい5 番外:複 ...

Go言語

Go言語の基礎〜Go 1.11 開発環境構築とパッケージバージョン管理〜

1 はじめに2 Go言語(Golang)とは2.1 シンプルな構文2.2 コンパイル言語2.3 並行処理2.4 その他の特徴3 Go開発環境の構築3.1 Goのインストール3.1.1 1. homeb ...

フォロー

blog-page_side_responsive

2019年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

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