0

我正在寻找有关如何避免的建议:

$route = array(
    'directory'             => 'accountdirectory/index',
    'directory/(:any)'          => 'accountdirectory/index/$1',
    'directory/(:any)/(:num)'       => 'accountdirectory/index/$1/$2' ...

如果可能的话,通过采用更宽容的单一模式,如果所有段都不存在,则路线不会中断:

'directory(/)?(:any)?(/)?(:any)' => 'accountdirectory/index/$1/$2'

路由

  • 目录/全部
  • 目录/
  • 目录/全部/10
4

2 回答 2

1

您可以使用一种路线:

$route = array(
    'directory' => 'accountdirectory/index',
    ...
)

并像这样定义 accountdirectory/index 函数:

public function index($arg1 = null, $arg2 = null) {
    if ($arg === 'all' && $arg2 !== null) {
        // directory/all/XXXX
    }
    elseif ($arg1 === 'all') {
        // directory/all
    }
    else {
        ...
    }
}
于 2013-02-20T15:37:06.217 回答
0

通常,在您描述的情况下,我会做的是:

$route['404_override'] = 'directory';

那么您可以在构造函数或索引函数中使用 if 或 switch 语句根据其他 uri 段从那里重定向。

于 2013-02-20T14:56:38.233 回答