2017-12-21 1 views
1

問題があります。ファルコンルートに単語が含まれています

$router->add('/news/{alias}(/?)', array(
'module' => 'frontend', 
'controller' => 'news', 
'action' => 'view', 
'news_id' => 1, 
'lang' => 'md',))->setName('news_view_short_e'); 

そして:彼は "インデックス" が含まれている場合、私は{別名}を確認することができますどのように

$router->add('/news/index/... 

私はルートを持っていますか?

/news/{alias:(?!index)+}(/?) 

動作しません。 助けてください。

マイリンク:

site.com/news/index/ - すべてのニュース
site.com/news/anlinter/ - カテゴリ
site.com/news/231213-newsfriendly- URL/- ニュースビュー

+1

達成したいリンクの例で質問を更新できますか? –

+0

リンクで私の質問が更新されました! – Jajaja

+0

インデックスを含むルートまたはインデックスを含まないルートと一致させますか? – Gurman

答えて

0

このサイトでは、理解のために本当に便利ですし、あなたの正規表現をテスト:https://regexr.com/

あなたの正規表現を(?!index)+に置くと、 "ネガティブルックアヘッド"があります。これは "メイン表現の後でマッチできないグループを指定します(マッチすれば結果は破棄されます)"。

問題は?!です。私は?!を削除したローカルマシンでいくつかの簡単なテストを行い、ルートが正しく一致しました。

+0

どうすれば修正できますか? – Jajaja

+1

/news/{別名:(index)+}(/?) – user1855153

+0

正確に。上のユーザのように: '/ news/{別名:(インデックス)+}(/?)'。 ところで、この回答が問題を解決した場合は、受け入れ済みとしてください。 – YOMorales

関連する問題