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

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 に答える