Laravelに入門してます。
「最近キテいるっぽい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> |
コントローラとビューの合わせ技
これで、コントローラを経由した形で、ビューの表示ができます。
こうなると、ここにデータベースから取得した結果を表示したくなります。そういうわけで、もう少し続きます。
(2015/12/25追記)続きました→「LaravelのEloquent ORマッパーを使ってデータベースアクセスの実装」