Laravel – コントローラー

コントローラーの場所

コントローラーは、アプリケーションディレクトリー以下の次のディレクトリーに配置される。

app/Http/Controllers/

一般のコントローラー

概要

  • 一般のコントローラーは複数のアクションを持つ
  • アクションはコントローラーのメソッドとしてpublic宣言される
  • アクションはルーティングで'コントローラー名@アクション名'として呼び出される。

コントローラーの生成

アプリケーションディレクトリー内で以下のコマンドを実行する。

php artisan make:controller コントローラー名

モデル作成時に-c/--controlleroptionを付けると、モデルと同時にコントローラーも作成される。この時のコントローラー名は単数形。

アクションの定義

コントローラークラスのメソッドとしてアクションを定義する。

ルーティング定義

ルーティングファイルで、メソッド・URLとコントローラーを結びつける。

シングルアクションコントローラー

概要

  • シングルアクションコントローラーは、アクションを1つだけ持つ
  • アクション名は__invoke()で定義する
  • ルーティングではコントローラー名のみ指定する

コントローラーの生成

生成は一般のコントローラーと同じ。ただしシングルアクションコントローラーの場合は、コントローラー名の末尾にControllerを付さない慣例あり。たとえばSingleActionなどのようにControllerを付けない。

php artisan make:controller コントローラー名

--invokableオプションを付けると、__invoke()メソッドが準備された状態でコントローラーが生成される。

php artisan make:controller コントローラー名 --invokable

なお、シングルアクションコントローラーを生成する場合は、ルーティングの定義より先に生成しないとエラーが発生する。

アクションの定義

シングルアクションコントローラーのアクション名は__invoke()と決まっている。

ルーティング定義

一般のコントローラー・アクションは'コントローラー名@アクション名'としたのに対して、シングルアクションコントローラーのルーティングではコントローラー名のみ指定する。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です