2016-08-26 12 views
0

に対処する方法を、私は次のようしているルートは:Yii2 - 類似したルート

'http://' . $domain . '/community-board/<topicName:\w+(-\w+)>/<id:\d+>' => 'board-posts/index', 
'http://' . $domain . '/community-board/<topicName:\w+(-\w+)>/<postName:\w+(-\w+)><id:\d+>' => 'board-posts/view', 

最初のルーティングが常に発射される、と私は2番目のルートにアクセスすることはできません。これに対処する方法はありますか?

+0

最初のルールで解決されたURLの例を挙げてください。特定のルールがどのように解決されたかを定義しますか? – IStranger

答えて

0

まず、このルールを特定のドメインに対してのみ有効にしない限り、http://' . $domain . '/を削除することができます。

2番目のルールに間違いがあります。次のようにルートcommunity-board/topic-main/post-SO-question39163975が解析されます:次のように

['topicName' => 'main', 'postName' => 'SO-question3916397', 'id' => 5]

私は2番目のルールで正規表現を修正することをお勧めしたい: community-board/<topicName:\w+(-\w+)>/<postName:\w+(-\w+?)><id:\d+>(regexpは怠惰にするためにpostNameプロパティに?を追加しました)。変更後:

['topicName' => 'main', 'postName' => 'SO-question', 'id' => 39163975]

私はチェッカーのルールをしましたし、他の問題を見ることができません。

関連する問題