Laravel入門中。コントローラとビューを使ってみる。

Laravelに入門してます。

FireShot Capture 55 - Laravel - ウェブ職人のためのPHPフレームワーク - http___laravel.jp_

Laravel – ウェブ職人のためのPHPフレームワーク

最近キテいるっぽいPHPフレームワークLaravelのインストール&起動!」では、とりあえずLaravelでアプリケーションの起動ができました。

下記ページを参考にしながら、このサンプルプロジェクトを肉付けしていきます。

Laravel5 入門 インストールからMVCの基本機能をさっと眺める

このページは一連の開発の流れがすごく綺麗にまとまっていてオススメです。

コントローラなしでも動く

前回のHello World的なアプリケーションのコードを確認すると、コントローラは介しておらず、ルーターが直接ビューを呼ぶような構造になっています。

Route::get('/', function () {
    return view('welcome');
});

これでwelcomeというビューテンプレートが呼び出され、画面が表示される形です。

こういう薄めの実装ができるのもLaravelの良さかもしれません。

コントローラ層の導入

とはいえアプリケーションを真面目に作るなら、いったんはコントローラにルーティングしてほしい気持ちになります。

試しにUserControllerというコントローラを作ってみます。コマンドを実行するとスケルトンを作ってくれます。

php artisan make:controller UserController

作成されたUserControllerクラスは、app/Http/Controllersの中に配置されます。

$ tree app/Http/Controllers/ -L 1
app/Http/Controllers/
├── Auth
├── Controller.php
└── UserController.php
 
1 directory, 2 files

ちなみに、ここに入っているControllerは、すべてのController系クラスの親クラスになります。

作成したControllerへのルーティング

作成したControllerへは、routes.phpで下記のように書くことで、リクエストがマッピングされます。

Route::get('/users', 'UserController@index');

これで、 /users というパスへのリクエストを、UserControllerのindexメソッドにルーティングします。

ちなみに、UserControllerは作成時点で、REST系のメソッドがスタブとして作成されています。このうちのindexメソッドにビューの表示を記述します。

class UserController extends Controller
{
    public function index()
    {
        return view('users.index');
    }
    // ...
}

データベースを伴うアプリケーションの場合は、ここからデータアクセスをしたりしてから、結果をビューに渡します。

ビューテンプレートの作成

ビューは、Bladeというテンプレートで記述することができます。

UserController内に記載した users.index に対応するビューを作成します。

mkdir resources/views/users
vim resources/views/users/index.blade.php

Hello Worldレベルですが、中身を書いて置きます。

<html>
    <body>
        <h1>User Index</h1>
    </body>
</html>

コントローラとビューの合わせ技

これで、コントローラを経由した形で、ビューの表示ができます。

FireShot Capture 57 -  - http___localhost_8095_users

こうなると、ここにデータベースから取得した結果を表示したくなります。そういうわけで、もう少し続きます。

(2015/12/25追記)続きました→「LaravelのEloquent ORマッパーを使ってデータベースアクセスの実装

About katty0324

Comments are closed.

Scroll To Top