2016年3月18日金曜日

僕はLaravelを使う事にした(3):RoutingからViewまで

このエントリーをはてなブックマークに追加
シリーズものだったりするのでこれまでのエントリを並べておく。


Routing

RutingとはアクセスしてきたURLとHTTPメソッドに対して実行するコントローラがクロージャを記載する。これはapp/Http/routes.phpにコーディングする。チュートリアルにある例をそのままもってくるとこんな感じ。

use App\Task;
use Illuminate\Http\Request;

/**
* 全タスク表示
*/
Route::get('/', function () {
//
});

/**
* 新タスク追加
*/
Route::post('/task', function (Request $request) {
//
});

/**
* 既存タスク削除
*/
Route::delete('/task/{id}', function ($id) {
//
});

Route::の後がHTTPメソッドになっていて、第1引数にURLを指定しているのがわかる。第2引数はクロージャになってる。

チュートリアルの内容的には全タスクを表示だとかなんだとか書いているけども”/”にアクセスされた時の挙動としてViewを表示した時の処理を足す。
/**
 * 全タスク表示
 */
Route::get('/', function () {
 // resourcse/views配下のtasksテンプレートを表示させる
 return view('tasks');
});
ここで指定したtasksというViewをresources/views配下に作っていく。

View

ViewもRailsやSymfonyと同じでページ共通部分(ヘッダー、フッター、ナビゲーションなど)を共通化できるlayoutという概念をもっており、その中で各ページで異なる部分は各ページのviewで担うようになっている。

layoutで使用するViewはresources/views/layoutsに置かれる。ここでつくるのはapp.blade.phpになる。わかりやすくするためにこんな感じで作ってみた。



layoutだよ
 
@yield('content')
body> 


tasks.blade.phpresources/viewsに置く。

@extendで指定したlayouts.applayouts/app.blade.phpを指定し、@section〜@endsectionまでの間が@yield('content')に挿入される。
@extends('layouts.app')

@section('content')
tasks.blade.phpの部分だよ
@endsection

これでサイト上で確認してみよう。http://IP Address/test1/でアクセスするとこのように見えた!

0 件のコメント:

コメントを投稿