2012-02-08 13 views
2

私はルートを持っている:Kohanaの3.2経路:複数ディレクトリ

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>'); 

私は、次のコントローラ/アクションへのルートこのURLをしたいと思います:

/application/classes/<directory>/subdir/<controller>.php::action_<action>() 

私はすでにあまりにもこのルートを持っている必要がありますこれは事を複雑にします:

Route::set('foo', '<controller>/<variable>/<action>'); 

それは可能ですか?

答えて

0

私は、これは新しいRoute::filter機能を使用してのKohanaのV3.3で可能になります

ディレクトリにサブディレクトリを追加したいと思います。現在のところ、Kohana 3.1または3.2ではRouteおよび/またはRequestクラスを変更することなくこれを行う方法はありません。

+1

私は最終的に要求クラスを変更してその機能を追加しました。 –

+0

誰かがこの作業を行う方法の例を投稿できますか? Kohanaのドキュメントとまったく同じではありません。 –

3

なぜデフォルトルートがの場合、ディレクトリルートの後に定義されていますか。

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>') 
    ->defaults(array(
     'directory'  => 'default_directory', 
     'controller' => 'index', 
     'variable'  => 'default_variable', 
     'action'  => 'index', 
    )); 

Kohanasルーティングは「ネイティブに」ディレクトリをサポートしているため、何かをハッキングする必要はありません。

クラス名にはディレクトリ名も含める必要がありますのでご注意ください。

+1

問題を作り出すのはサブディレクトリです。サブディレクトリをディレクトリに追加したいと思います。上記のコードは、2番目のコードスニペットで指定したディレクトリには移動しません。 –

0

REGEXPを使用して、ディレクトリ/サブディレクトリ/コントローラ/アクション をルートのように一致させることができます。//ここで、regexpはディレクトリを内部/外部に置くことができます。その後、Routeクラスを少し変更して、すべてを/に変更してください。

まだテストされていません。 ;)しかし、私は約...

+3

投稿する前にテストする必要があります... –

関連する問題