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の部分の指定がない場合に利用される、デフォルト値をパラメーターに指定しておく必要があります。ですから、この場合は、「無しページ目が指定されました。」と表示されます。