2011-06-18 16 views
0

私は本当にこのために検索する方法を正確にもわからないが、私はURLCakePHPの - ワイルドカードでのルーティング(コントローラがエラーが見つかりません)

フォーラムはプラグインであり、私は現在、それをルーティングしている
site.com/forum/controller/action 

を持っています成功し

Router::connect('/forum', array('plugin' => 'forum', 'controller' => 'home', 'action' => 'index')); 

とプラグインのフォーラムにしかし、私は、プラグインのフォーラムに任意のトップレベルのサブディレクトリを接続するルートを追加します。たとえば、

site.com/fish/controller/action 
site.com/bird/controller/action 

は、両方ともフォーラムプラグインにルーティングします。同様に、

site.com/bird 

もフォーラムプラグインにルーティングされます。これは私が思い付くことができた最高のであり、それは(私は「FishControllerは見つかりませんでした」の取得は効果がありません:

Router::connect('/*/:controller/:action/*', array('plugin' => 'forum')); 

私は見つけることができる最も近い答えは基本的にこれが可能ではないかもしれないと言いますか? http://cakephp.1045679.n5.nabble.com/Routes-with-wildcards-missing-controller-errors-td1263632.html

EDIT:いくつかのより多くの裁判&エラーの後、私はこの試みた:?

Router::connect('/:site/:controller/:action/*', array('plugin' => 'forum')); 

をそして、それは動作します誰かがこれを説明してもらえ

答えて

1

http://api.cakephp.org/class/router#method-Routerconnectの文書はこれを説明するのに大変役立ちます。

カスタムパラメータが作成されました。 Cakeは配列を使用してパラメータを追跡し、どのコントローラ、アクション、およびその他のパラメータが渡されたかを知っています。ルーターは、3つのスラッシュ(/)を含むURLを$param['site'],$param['controller']$param['action']に変換します。

コントローラからは、$this->params['site']を使用してsite:の値を取得できます。

+0

ありがとう...もう一度:) –

関連する問題