0

HMVCをCIの最後のバージョンで使用していて、HMVCのすべてのモジュールをコントローラーCIにルーティングしたい

私が使用する場合

$route[‘admin/(:any)’] = “admin/”;
$route[’(:any)’] = “index/index/$1”;
$route[’(:any)/(:any)’] = “index/index/$1/$2”;
$route[’(:any)/(:any)/(:any)’] = “index/index/$1/$2/$3”;

URLには多くのセグメントが含まれる可能性があるため、これは解決策ではありません

次のように、コントローラー、メソッド、およびすべてのパラメーターをルーティングしたいと思います。

$route[’(:any)/(:any)/ *all parameters *’] = “index/index/$1/$2/ *array($parameters)*”;

または、HMVCのルートを停止するにはどうすればよいですか。HMVCのルートは必要ありません。

plsは役立ちます。

ありがとう、ジョン。

4

1 に答える 1

0

ルーティングは必要ありません。codeigniter はすでにこれを行っています。

welcome新しい CI インストールから、コントローラーで遊んでいます。

public function index()
{

    $args = $this->uri->uri_to_assoc();

    echo "<pre>";

    print_r($args);

    echo "</pre>";

    // $this->load->view('welcome_message');
}

[http://localhost/codeigniter2.1.2/index.php/welcome/index/param1/param1_value/param2/param2_value/param3/etc]にアクセス

これが得られます:

Array
(
[param1] => param1_value
[param2] => param2_value
[param3] => etc
)

したがって、コントローラー [ようこそ]、関数 [インデックス] およびそれ以降のすべてがパラメーターです。ルーティングをいじる必要はありません。


ルーティングされる可能性のあるすべてのパラメーターを考慮する必要はありません。

次のようなルートを使用できます。

$route[‘admin/(:any)’] = “admin/”;
$route[’(:any)/(:any)/(:any)’] = “index/index/$1/$2/$3”;

次に、 を除くすべての URLadmin/*が にルーティングされindex/indexます。その時点から、上記のようにパラメーターを取得するか、必要なセグメントがある$this->uri->segment(n);場所を介してパラメーターを取得できます (したがって、上記のルートから戻ります)。n$this->uri->segment(3)$1

于 2012-11-05T22:00:55.753 に答える