(Laravel) コントローラの作成方法〜使用方法(基本)

 

この記事では、
Laravelの、Controllerの作成方法から、基本的な使用方法までをメモ

まずは大まかに、Laravelの、Controllerの作成方法〜使用方法までを紹介する。

 

laravelのcontroller作成方法〜使用方法
  1. コマンドでコントローラを作成する(php artisan make:controller 〇〇Controller)
  2. 「app→Http→Controllers」内にコントローラが作成される
  3. ファンクションを記述していく

 

では注意点なども含め、詳細に説明していく。

 

laravel のコントローラとは?(読み飛ばしOK)

まずは、laravelのコントローラが何かよく理解していない人のために、
laravelのコントローラとは?と言うことを明確にしておく。

laravelのコントローラとは、簡単に言うと、
ブラウザからのリクエストを受け取って、リクエストに応じたを処理を実行する機能のことだ。

laravelにおいて、コントローラはロジックを一番多く記載する箇所なので、一番重要な役目をになっている機能と言っても過言ではない。

laravel-controller

viewとかmodelはcontrollerから呼ばれるものなので、なくてもなんとかなるが、
controllerは、アプリの始まりなので、必須となっている。

 

Laravelでのコントローラの作り方

では、本題。Laravelでのコントローラの作り方について解説していく。

 

laravelコントローラはコマンドで作成

laravelのコントローラは、
laravelではおなじみのartisanコマンドでコントローラを作成できる。

php artisan make:controller 〇〇Controller

 

「php artisan make:controller」までが「コントローラを作って!」という命令で、
「〇〇Controller」がコントローラ名となっている。

例えば
php artisan make:controller CharcterController」と言った具合に作成する。

 

laravelコントローラの命名規則

上記で〇〇として部分にはアプリ名が入るんでControllerと付け足す。
これはlaravelのコントローラの命名時に、通常そうするってだけで、別に違っても構わない

 

コントローラのできる場所

laravelのコントローラは、コマンドで作成した後は、
「app→Http→Controllers」内に出来上がる

laravelコントローラの作成場所

 

laravel コントローラの使用方法

laravelコントローラの作成に関しては以上なので、
次にlaravelコントローラの使用方法について簡単に説明していく。

 

laravelコントローラを記述していく

作ったコントローラファイルの中にfunctionを書いていく

public function index($hoge=‘ほげげ’, $fuga=‘ふがが’’) {
…処理...
}

 

ファンクションは何個でも記述できる。どのファンクションを呼ぶかはルーティングで指定する。

 

ルーティングからコントローラを呼び出す。

コントローラに記述した内容は、ルーティングから呼び出される。
ルーティングのファイルは「Routes→web.php」。

laravelのルーティングに関しては、以下の記事で詳細をまとめているので、laravelのルーティングについて理解していない人は参考にして欲しい。

 

ルーティングからコントローラを呼びだす方法

web.phpにて

Routes::getまたはpost(‘パス’ , ‘コントローラ名@ファンクション名’);

 

以下はFooControllerのindexファンクションを、getで呼び出す例

Route::get(‘hello/{hope?}/{fuga?}/‘ , ‘FooController@index’);

 

注意したいのは、パラメータの渡し方

上記だと、パスに指定した{hoge}と{fuga}がパラメータとしてindexファンクションに渡される。
受け取る側の「‘FooController@index’」という記述の方には何も書かなくて大丈夫だ。
コントローラに記載するfunction側で受け取る引数だけを記述しておけばOK。

 

ルーティングでコントローラを呼ぶときの注意点

基本的にはurlと、紐づけるプログラムは同じ構造にする。

例えば

Route::get(‘hello/hoge’ , ‘HelloController@hoge’);

というふうにする。

上記なら,「hello/hoge」にアクセスしたら、Helloコントローラにあるhogeファンクションなんだなっていうのが想像つく

つまりアクセスするパスで、呼び出されるコントローラと、対応するファンクションが予測できるような構造にする、ということが大事だ。

これもこうじゃなきゃいけない!ってものではなく、通例

 

記事が気に入った方はシェアをお願いします!

コメントを残す

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