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' ); }); |
View
ViewもRailsやSymfonyと同じでページ共通部分(ヘッダー、フッター、ナビゲーションなど)を共通化できるlayoutという概念をもっており、その中で各ページで異なる部分は各ページのviewで担うようになっている。
layoutで使用するViewはresources/views/layoutsに置かれる。ここでつくるのはapp.blade.phpになる。わかりやすくするためにこんな感じで作ってみた。
layoutだよ @yield('content') body> |
tasks.blade.phpはresources/viewsに置く。
@extendで指定したlayouts.appでlayouts/app.blade.phpを指定し、@section〜@endsectionまでの間が@yield('content')に挿入される。
@extends('layouts.app') @section('content') < div >tasks.blade.phpの部分だよ</ div >@endsection |
これでサイト上で確認してみよう。http://IP Address/test1/でアクセスするとこのように見えた!