コントローラーの利用方法

それではコントローラーの利用方法をみていきましょう。

コントローラの作成

laravelで利用するControllerは、laravelのartisanコマンドを利用して作成することができます。

artisanコマンドは、laravelアプリケーションで必要な各種ファイル生成やデータベースの設定などを行なってくれるとても便利なコマンドです。

今回は、artisan の make:controller コマンドを利用してコントローラを作成します。

workspaceにログイン

まずlaradockの場合は

docker exec -it --user=laradock laradock_workspace_1 bash

を実行して、dockerのworkspaceにログインします。(ログイン済みであればそのままで構いません。)

vagrant(Homestead)の場合は

vagrant ssh

を利用してログインしてから、

cd /code/sample_app

上記のコマンドで、Laravelのプロジェクトディレクトリに移動します。

contollerの生成

続いて、現在 Laravelのプロジェクトディレクトリにいることが確認できたら

php artisan make:controller SampleController

としてみましょう。

上記の命令は

  • phpプログラムである
  • artisan というツールを利用して
  • コントローラーを生成(make)してください
  • コントローラー名はSampleControllerにしてください

という意味になります。

(なお、今後も php artisan から始まるコマンドを実行するときは仮想環境内のLaravelのプロジェクトディレクトリから実行するようにしましょう。)

controllerの確認

生成された SampleControllerは sample_app/app/Http/Controllers/ ディレクトリに生成されます。

SampleController.phpを開いてみましょう。

SampleController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    //
}

namespace, use, classなど多くの方にとって見慣れない記述が続いています。 これらについては後ほど詳しく解説を行います。

まずは

  • 現在はSampleControllerというものが生成されたが何も機能がない。
  • SampleControllerの中にfunctionを定義することで、SampleControllerに様々な機能を持たせることができる。

ということだけ押さえておきましょう。

controllerにアクションを定義

それでは、web.phpで行なっていた処理をSampleControllerに移し変えていきます。 まずは、SampleControllerに追記を行い

SampleController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    public function sample_action(){
        $title = 'コントローラーを利用したサンプル';
        $description = 'コントローラーを利用すると、ルーティングでphpの処理を書く必要がなくなります。';
        return view('blade_sample',[
            'title' => $title,
            'description' => $description,
        ]);
    }
}

と追記しておきましょう。

コントローラの利用

では、このsample_actionというメソッドをweb.phpの側で利用してみましょう。

web.php

(略)
Route::get('/sample_action', 'SampleController@sample_action');

と追記してあげましょう。 今まで無名関数を記載していた箇所に コントローラ名@メソッド名 の 文字列が書かれています。 これは、今まで利用していた無名関数の代わりに SampleController の sample_action というメソッドを利用する、という意味になります。

それでは

http://localhost/sample_action

(Docker Toolboxの場合は http://(dockerのipアドレス)/sample_action )

にアクセスしてみましょう。

sample_action

上記のような画面が表示されれば完成です。

アクションとは

今回利用した sample_action メソッドのように、 コントローラーに定義されたメソッドで、ルーティングから利用されるものを 「アクション(action)」と呼びます。

エラーメッセージや解説など、様々なところで利用される用語なので 覚えておくと良いでしょう。

results matching ""

    No results matching ""