Laravel4、基礎の基礎:5.動的なページ出力
タグ: Laravel4
HTMLではなくPHPを使用するのなら、やはりURIやその他の状態により、動的に出力を切り替えたいものです。
特に、URIで指定された情報を取り込んで、動作や表示を変更するのは定石の手法ですからね。やってみましょう。
いつもの通り、routes.phpを変更してください。
Route::get('page/{page}', function($page) { return $page.'ページ目が指定されました。'; });
{page}の部分はそこに指定された値が、引数として渡されます。並びの順番で渡されますので、{page}
と$pageの名前を一緒にする必要はありません。ですが、わかりづらくなるため、通常は一緒にします。
まあ、一応、確認してみましょう。
Route::get('param/{first}/{second}', function($saisyo, $nibannme) { return '最初は'.$saisyo.'、2番めは'.$nibannme; });
さてこのようなフォーマットで指定した場合、URIで{}で囲まれた部分が存在しないと、指定したルート定義に一致したものが存在しないため、404エラーになります。(インストール状態はデフォルトでデバッグ指定が行われており、そのため、404エラー表示ではなく、例外ページが表示されます。)
存在していなくても、ルーティングに一致させるには{...?}を使用します。まあ、ごらんください。
Route::get('page/{page?}', function($page = '無し') { return $page.'ページ目が指定されました。'; });
{page}
で指定していたときは、URIの/page
にアクセスすると404エラーになりました。(実際は、オレンジの派手な、例外ページが表示されます。)
{page?}
で指定してすると、/page
にアクセスしても、404エラーにはなりません。そのかわりに、該当するURIの部分の指定がない場合に利用される、デフォルト値をパラメーターに指定しておく必要があります。ですから、この場合は、「無しページ目が指定されました。」と表示されます。