【Laravel 入門】コントローラの使い方

Laravel

今回は、laravel が採用している設計思想であるMVCモデルの概略と、コントローラの使い方の基礎を解説していきます。


参考書

MVCモデル

MVCは、「Model-View-Controller」の略であり、アプリケーションを設計する上での考え方になります。

モデル(Model)

データベースとのやりとりに関する処理全般を担当します。

ビュー(View)

ブラウザへの表示を担当します。
画面表示に使うテンプレートなどがこれにあたります。

コントローラ(Controller)

モデル・ビューを含めた全体の制御を担当します。



以上のように、モデルとビューは特定の機能に特化したものですが、コントローラは処理全般を制御するものであり、プログラムの本体のような位置づけになります。

それぞれの役割を念頭に置いておいてください。

コントローラの利用

コントローラの作成

ではコントローラを作成してみましょう。


コマンドラインで、

php artisan make:controller コントローラ名
とすることでコントローラを作成することができます。
(サーバーを起動させている場合は、Ctrl + C でサーバーを停止させてから実行してください)


今回は以下のように実行します。
php artisan make:controller SampleController


作成されたコントローラは、
app/Http/Controllers の中に配置されています。


では、SampleController.php を見てみましょう。
コントローラはクラスとして作成され、デフォルトで以下のような記述がなされています。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    //
}


namespace(名前空間)や use 文はPHPの仕様ですので、具体的な解説は割愛します。


簡単に言うと、名前空間とはクラスを階層的に整理するための仕組みであり、このクラスは App\Http\Controllers という名前空間に配置されます。

use 文クラスをインポートする機能であり、Request クラスはよく使用するため、デフォルトでインポートされています。

アクションの追加

では、SampleController クラスに処理を追加しましょう。
コントローラに記述する処理は「アクション」と呼ばれ、複数用意することができます。


今回は、SampleController クラスに index アクションを以下のように追加します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    public function index() {
        return 'SampleController の indexアクションにアクセスしました';
    }
    
}


そして、このコントローラのアクションにルートを割り当てるには、web.php に以下のような記述をします。

Route::get(‘ アドレス ‘, ‘ コントローラ名@アクション名 ‘);


今回の場合は、以下のようになります。

Route::get('/sample', 'App\Http\Controllers\SampleController@index');


これでサーバーを起動してブラウザを読み込むと、
「SampleController の indexアクションにアクセスしました」
と表示されます。
(サーバーを起動するには、コマンドラインで「php artisan serve」を実行してください)


これで、ルートをコントローラのアクションに割り当てる方法が確認できました。




今回は以上になります。
ご覧いただきありがとうございました(^^)


参考書



続きはこちら↓

コメント

コンタクトフォーム

    タイトルとURLをコピーしました