【laravel入門】プログラミング初心者向けlaravelのコントローラーを解説

みなさん、プログラミング学習は進んでしますか?

コロナウィルスの影響で外出できない今だからこそ、普段できないことを勉強してみると良いんじゃないですかね。

僕の方はといいますと、普段使っているlaravelについて、もう一度基本からさらい直して、ブログに収めていこうと思い、記事を書いているところです。

プログラミング初心者でlaravelを勉強中の方の役に立てればなと思います。

というわけで、今回はlaravelのControllerの(コントローラー)について解説していきます。

laravelのController(コントローラー)基本

コントローラーとは、MVCのCに当たる部分ですね。

どんな役割があるのかと言いますと、一概には言えないのですが、処理の基点となる部分というのが一番しっくりくるのかなと思います。

具体的には以下の処理をやってくれます。

リクエストを受け取る

Modelを呼び出す

Viewを反映させる

このような処理を担っているのがコントローラーです。

laravelのコントローラーを作成する方法

コントローラーを作成するにはartisanコマンドというものを利用します。

artisanコマンドを実行することにより、コントローラーが自動生成されます。

コントローラーにはlaravel独自の命名規則があり、Controllerを接尾辞にして、XxxxControllerとなります。

仮に「HelloController」を作成する場合はこのようになります。

php artisan make:controller HelloController

コマンドの実行は無事にできましたでしょうか?

成功している場合、自動生成されたものは、/app/Http/Controllersのフォルダー配下に保存されています。

laravelのコントローラーを編集してみよう

laravelのコントローラー自動生成されるので、実際は意識する必要はないのですが、仕組みとして把握しておいてほしいことが一つあります。

それは、Controllerクラスというものがもともと存在し、それを継承されたものが自動生成されているということです。

なので、コントローラーの基本機能はControllerクラスに詰まっているのです。

次にアクションメソッドというものについてです。

アクションメソッドとはpublicで記述された一つの関数のことで、このアクションメソッドを束ねたものが一つのコントローラーになります。

アクションメソッドの役割は、モデルを呼び出したり、ビューに渡したりと、様々です。

単純に文字列を表示させるサンプルを作ってみます。

文字列を表示させる倍は、アクションメソッドの戻り値がviewに出力されます。

文字列を出力させるだけなら、戻り値として文字列を返すだけ。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

//Controllerクラスが継承されている
class HelloController extends Controller
{
   //一つのアクションメソッド
   public function index()
   {
       return 'こんにちは';
   }
}

これでブラウザに表示させる準備が整いました。

ルーティングでURLアクションメソッドを紐付ける

最後に作成したコントローラーをURLに紐付ける必要があります。

その設定がルーティングというものになります。

ルーティングは、リクエストされたURLに応じて、アクションメソッドを実行させることができます。

ルーティングは/routes/web.phpに定義します。

ルーティングの設定方法はいろいろありますが、今回は一番簡単なのはRouter::get(path,action);を定義します。

http://〇〇〇/helloで先程作成したアクションメソッド受け渡す場合はこうなります。

Route::get('hello', HelloContoroller@index);

開発サーバーを起動させて、http://127.0.0.1:8000/helloにアクセスすると、表示を確認できるようになります

まとめ

コントローラーについては理解できましたか?

ここがわかるようになれば、次回はviewの基本的な使い方について解説していきます。

正社員という奴隷制度に中指を立てるWebエンジニアです。PHPが得意。繋がれた鎖を断ち切るために、自由を取り戻すために、プログラミングスキルを磨く日々です。プログラミングと個人でもできるビジネスについて、情報発信しています。

詳しくはこちら