(Laravel) コントローラの作成方法

larave-controller

 

Laravelの、Controllerの作成方法をメモ

 

controllerとは

MVCモデルのうちのC

laravel-controller

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

 

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

 

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

 

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

laravelでは下記のコマンドでコントローラを作成できる。

php artisan make::controller 〇〇Controller

 

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

 

コントローラ名の規則

〇〇にはアプリ名が入るんでControllerと付け足す。
これは通常そうするってだけで、別に違っても構わない

 

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

「app→Http→Controllers」内に出来上がる

 

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

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

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

 

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

 

コントローラの使い方

 

コントローラの作成方法の次に、コントローラの使い方もメモをする。

 

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

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

 

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

web.phpにて

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

 

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

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ファンクションなんだなっていうのが想像つく

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

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

 

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

コメントを残す

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