2011-07-21 6 views
0

私は現在、渡されたargsを含むいくつかの非常に奇妙なルーティングを使っています。すべて正常に動作し、リンクはページングを除いて正しく逆引きされます。私は私の髪を引き裂いているが、何かを欠いている必要があります。CakePHPのルーティングとページ分割の問題

私のルートは以下のとおりです。

Router::connect('/manufacturer/:manufacturer/:friendly0', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0'))); 
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1'))); 
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2'))); 
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2/:friendly3', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2', 'friendly3'))); 
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2/:friendly3/:friendly4', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2', 'friendly3', 'friendly4'))); 

と私はこのようなページネータオプションに渡された引数を追加しました:

$this->Paginator->options(array('url'=>array(
    'controller' => 'categories', 
    'action' => 'view', 
    'manufacturer' => 'nsm', 
    'friendly0' => 'Accessories' 
))); 

しかし、ページネータのリンクは次のように出てくる:

/カテゴリ/ビュー/ページ:2 /メーカー:nsm/friendly0:アクセサリー

ことウルド:

/メーカー/ NSM /アクセサリー/ページ:2

誰でも助けることができますか?

ありがとうございます。

編集:

私は各ルートの最後に/ *を追加した場合だけ最初のルートの予想通りその後、改ページのリンクと通常のリンクが動作します。私は、他のルートがディスパッチ中に一致しなければならないとき、/ *のために最初のルートが常に真であると推測しています。私はこのようなこれらのルートの順序を変更した場合

興味深いことに、:2という名前のparamは渡された引数である必要があり、フレンドリーに渡し:

Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/*', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1'))); 
Router::connect('/manufacturer/:manufacturer/:friendly0/*', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0'))); 

はその後ケーキは、ページことを考えているようだ1。

+0

私はあなたの他の質問に答えとしてあなたのルートの設定を変更するとページネータはまだ何か問題を与えた場合に見てお勧めします... –

答えて

0

この質問への回答は私の問題を解決するのに役立ちました。シャズありがとう。

Consolidate CakePHP routes