例 |
// このようにルートを定義した場合:
return array(
'_root_' => 'welcome/index', // デフォルトルート
'_404_' => 'welcome/404', // メインの 404 ルート
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
);
// この呼び出しは 'http://your_base_url/welcome/hello' を返す
echo Router::get('hello');
ルートに名前付きパラメータ、正規表現、または両方の組み合わせを含めて、この様にもできます。
// ルートをこの様に定義した場合:
return array(
'thread/(?P<thread_id>\d+?)/post' => array('post', 'name' => 'post'),
);
// これらは 'thread/1/post' を返す:
echo Router::get('post', array('thread_id' => 1));
echo Router::get('post', array('$1' => 1));
echo Router::get('post', array(1));
// ルートをこの様に定義した場合:
return array(
'country/(?P<country>\d+?)/state/(?P<state>\d+?)/location' => array('location', 'name' => 'location'),
);
// これらは 'country/japan/state/tokyo/location' を返す:
echo Router::get('location', array('country' => 'japan', 'state' => 'tokyo'));
echo Router::get('location', array('$1' => 'japan', '$2' => 'tokyo'));
echo Router::get('location', array('japan', 'tokyo'));
echo Router::get('location', array('country' => 'japan', 'tokyo'));
echo Router::get('location', array('$1' => 'japan', 'tokyo'));
ルートに従来の正規表現と名前付きパラメータまたは正規表現ショートカットが混在して含まれている場合、
それらが共に変換されて、予期しない結果になってしまうかもしれないということに注意してください。
// ルートをこの様に定義した場合:
return array(
'hello/(:name)(/:segment)' => array('welcome/user', 'name' => 'user'),
);
// "(/:segment)" は "article" によって中身が完全に変換されてしまうことに注意してください、
// したがって、この呼び出しは 'http://your_base_url/welcome/user/johnarticle' を返す。
echo Router::get('user', array('name' => 'john', 'article'));
|