質問

私はと、コントローラと同様の私のユーザーのメソッドを持っています

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')
    )
);

http://book.cakephp.org/view/46/Routes-Configuration

他のヒント

タグで試してみてください
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'));
私はそれをテストしていないが、私はあなたがコロンをエスケープする必要があります考えていることです。

注意

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top