Laravel5の基礎1 テストページを作る

ルーティング

Laravel5はその他のフレームワークと同様にページの作成はすべてMCVで行います。基本的にはすべてコントローラーを介して情報を返すというのがMCVの役目なのでアクセスされたページがどのコントローラーと紐付いているのかを決定しなくてはなりません。その役目がルーティングになります。
各ページのルーティングは

app/Http/routes.php

にまとめて記述します。

Laravel5.3からroutesが引越しました。

ルーティングはこちらのファイルに記述します。

routes/web.php

無名関数で文字列だけ表示するページを作成する

ここでは単にルーティングしたページにアクセスしたら文字列を表示するというだけなので、いわゆる無名関数でその内容を表示します。デフォルトでwelcomeページが表示されるようになっていますが、以下のように編集してみます。

Route::get('/test/', function() {
return 'Laravel5 Test');
});

これでhttp://example.com/test/にアクセスするとページが「Laravel5 Test」が表示されます。ここではまだコントローラーが指定されていません。実際はもっと複雑な値を返す必要があります。(余談ですがLaravelはSymfonyほど極端なMCVに固執しないのでその点は楽です。)
Route::get()関数の第一引数がURLのパスになります。第二引数が返す値、つまり表示させる値になります。ここでは無名関数でそのまま文字列を返しているので’Laravel5 Test’が表示されるということになります。
パスは基本的には/で終わるのがよろしいかと思います。(Cakephpは/testのように/で終わらないのが習わしになっております。)

viewを作成する

実際にはより複雑な情報を表示することになります。Laravel5ではbladeというテンプレートを使って表示します。viewを使って表示させるには、ルーティングのところでviewを設定してあげます。

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

returnでただの文字列を返すところを、view()という関数に値を渡してあげます。
しかし肝心のviewテンプレートがないのでこれだけではエラーになってしまいます。テンプレートも同時に作成してあげます。
viewのテンプレートは、

resources/views/*

に作成します。
viewのテンプレートは、何も設定しない場合はルーティングで設定したパスに連動するようです。つまり、/test/というパスにアクセスした場合は自動的にresources/views/test.blade.phpをよびにいくという具合です。しかしこれではちょっと使いづらいことになります。なので、view()にはテンプレートのパスを設定してあげます。

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

テンプレートは、

resources/views/test/index.blade.php

に設定できます。
index.blade.phpはいわゆるhtmlファイルとかphpファイルとかと同様の記述ができます。

Last update: 2017.12.19 (火)