0

CodeIgniter を使用しています。これが私のルーティングファイルです

    $route['default_controller'] = 'pages/view/home';
    $route['(:any)'] = 'pages/view/$1';

どこ

pages はコントローラ クラスで、view はその関数であり、home はその関数のパラメータです。

これがデフォルトのコントローラーです。「ホーム」ではなく別のページを開く必要がある場合、ビュー内から次のようにします

href="<?php echo base_url('products');?>

今私が聞きたいのは、新しいコントローラーを作成した場合、そのコントローラーの機能をどのように使用できますか? base_url() 関数に 3 番目のパラメーターのみを渡しているためです。

明らかに、$routes を書かなければならないと思いますが、どうすればよいでしょうか? すべてのトラフィックが

ページ/ビュー

新しいコントローラーを作成しようとしましたが、使用できませんでした。新しいコントローラーの名前は new_controller で、関数呼び出し new_function() があります

そして、次のように $route を書きました

$route['pages/view/product'] = 'new_controller/new_function';

4

2 に答える 2

1

そこにある (:any) ルートを取り除けば、ルートについて心配する必要はありません。それは、他のすべてのコントローラーのロードをブロックしていると思います。

「Stuff」というコントローラーがあれば

mysite.com/stuff/foo/param Code Igniter は、デフォルトの「ページ」コントローラーをバイパスして使用する必要があります。

このようなことをしたほうがいいと思います

$route['page/(:any)'] = "page/view/$1";

デフォルトを「ページ」のみに変更します

これにより、新しいコントローラーが通常のコードイグナイターの方法で使用できるようになります

于 2012-08-15T14:04:37.743 に答える
0

CodeIgniter では、ルートは行ごとに評価されるため、最初にデフォルト ルートを取得し、その後、新しいルート $route['pages/view/product'] を配置する必要があります (:any) ルートを維持したい場合は、これにより、(:any) ルートの前に例外ルートを配置します。

于 2012-08-15T14:09:10.173 に答える