0

私は次の2つのルートを持っています。

Router::connect('/photo-gallery/:slug-:id', 
                    array('controller' => 'company_categories', 'action' => 'photo_gallery'),
                    array(
                        'pass' => array('id'),
                        'id' => "[0-9]+"
                    )
    );


Router::connect('/:slug-my-string-:id',
                    array('controller' => 'company_categories', 'action' => 'category_companies'),
                    array(
                        'id' => "[0-9]+",
                        'pass' => array('id')
                    )
    );

前者は機能しますが、後者は機能しません。

私は何を間違っていますか?

ありがとうございました!

4

2 に答える 2

3

文字列":slug-my-string"全体が、期待どおり ":slug"だけでなく、ルート要素として解析されるため、2番目のルートは機能しません。参照

于 2012-09-03T21:07:10.927 に答える
0

私が最終的に見つけた解決策は次のとおりです。

Router::connect('/:slug-:string-:id',
                    array('controller' => 'company_categories', 'action' => 'category_companies'),
                    array(
                        'id' => "[0-9]+",
                        'string' => "my-string"
                        'pass' => array('id')
                    )
    );

このようにして、ルートURLパターンで使用されるすべての種類の静的文字列を処理でき、ダッシュ(「-」)の解析に関して問題はなくなりました。これが問題だったと思います.

于 2012-09-04T16:01:44.453 に答える