私はコハナ3.0の下に私のウェブサイトを持っています。これはデフォルトのルートで完全に機能します
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'user',
'action' => 'index',
));
このアドレスで自分のWebサイトにアクセスしようとするとhttp://127.0.0.1/web/
、URLがロードされますhttp://127.0.0.1/web/user
。大丈夫です。しかし、今度はコントローラーの下にadminディレクトリを追加したいと思います。だから私のウェブツリーはこのように見えます
classes
| controller/
Admin/
dashboard
web.php
| model
管理者がこのようなURLで管理者のページにアクセスできるようにしたいと思います
http://127.0.0.1/admin/dashboard
。ここで、ダッシュボードは管理者のディレクトリの下にあるコントローラーです。これでブートストラップファイルを変更します
Route::set('admin', '<directory>(/<controller>(/<action>(/<id>)))',
array('directory' => '(admin)'))->defaults(array(
'controller' => 'user',
'action' => 'index',
));
を介して管理セッションにアクセスできhttp://127.0.0.1/web/admin/dashboard/
ますが、デフォルトのコントローラーであるにアクセスできませんhttp://127.0.0.1/web/
。Kohana_Request_Exception [ 0 ]: Unable to find a route to match the URI:
コントローラのデフォルトアクセスが欠落しているというエラー。次のリンクから自分のWebサイトにアクセスできるように[ルーティング]を設定するにはどうすればよいですか。
http://127.0.0.1/web/
と
http://127.0.0.1/web/admin/dashboard/
編集 コハナのドキュメントから、それは書かれています
In this example, we have controllers in two directories, admin and affiliate. Because this route will only match urls that begin with admin or affiliate, the default route would still work for controllers in classes/controller.
Route::set('sections', '<directory>(/<controller>(/<action>(/<id>)))',
array(
'directory' => '(admin|affiliate)'
))
->defaults(array(
'controller' => 'home',
'action' => 'index',
));
ソース :http://kohanaframework.org/3.0/guide/kohana/routing#examples
今、私は自分のコードを次のように変更します
Route::set('default', '<directory>(/<controller>(/<action>(/<id>)))',
array(
'directory' => '(admin)'))
->defaults(array(
'controller' => 'user',
'action' => 'index',
));
しかし、私はこのエラーがあります
Kohana_Request_Exception [ 0 ]: Unable to find a route to match the URI:
次のようなデフォルトのコントローラーにアクセスしたいときhttp://127.0.0.1/user/index