CakePHPのルーティング

ルーティングとは

ルーティングとはURLとコントローラーのアクションを関連づけることをいいます。CakePHPではルーティングの設定はapp/config/routes.phpで行います。

構文

次の記法にしたがってルーティングの設定を行います

Router::connect(
    'URL',
    array('default' => 'defaultValue'),
    array('option' => 'matchingRegex')
);

1つ目の要素は制御する対象のURLでワイルドカードなどで表現することも可能です。 2つ目の要素は連想配列でroute要素(:controller, :action, :plugin)に対応する初期値を設定します。 3つ目の要素は指定したいものだけにマッチするようにルートを設定するのに使用できて、正規表現で表現可能です。

例えば

Router::connect(
    '/:controller/:year/:month/:day',
    array('action' => 'index'),
    array(
        'year' => '[12][0-9]{3}',
        'month' => '0[1-9]|1[012]',
        'day' => '0[1-9]|[12][0-9]|3[01]'
    )
);

このように複雑な条件でも簡単にルーティングすることが可能になります。