オプションのparamsにルーティングCakePHPの
質問
私はと、コントローラと同様の私のユーザーのメソッドを持っています
function members($type = null, $category = null) { ... }
の両方のparamsはオプションであり、一緒に、またはそれら自身で使用することができます。
だから、以下のルートでます。
Router::connect('/members/*', array('controller' => 'users', 'action' => 'members'));
http://example.com/users/members
が正常にhttp://example.com/members
になります。
残念ながらない、次の作業
http://example.com/members/type:cat
http://example.com/members/category:dog
http://example.com/members/type:cat/category:dog
私は私のルートを設定することができ、どのように彼らはすべての作業を適切?
解決
名前付きパラメータがautomagicalyアクションにマップされていません。あなたはどちらかを呼び出すことによってそれらを得ることができます。
の$ this - > passedArgs [ '型']またはます$ this-> passedArgs [ 'カテゴリ']
やルータの3番目のパラメータ::接続を使用して、
Router::connect(
'/members/*',
array('controller' => 'users', 'action' => 'members'),
array(
'pass' => array('type', 'category')
)
);
他のヒント
タグで試してみてください
Router::connect('/members/type\:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Router::connect('/members/category\:(.*)', array('controller' => 'users', 'action' => 'members_category'));
Router::connect('/members/type\:(.*)/category:(.*)', array('controller' => 'users', 'action' => 'members_type'));
私はそれをテストしていないが、私はあなたがコロンをエスケープする必要があります考えていることです。 注意
所属していません StackOverflow