0
我有一個路由的大問題:所有頁面匹配相同的路由!symfony:路由總是在相同的路由
的routing.yml
# default rules
homepage:
url: /
param: { module: home, action: index }
# generic rules
# please, remove them by adding more specific rules
localized_homepage:
url: /:sf_culture/
param: { module: home, action: index }
requirements:
sf_culture: (?:it|en|es|fr)
change_language:
url: /change_language
param: { module: language, action: changeLanguage }
contatti:
url: /:sf_culture/:contatti.html
param: { module: contatti, action: index }
requirements:
sf_culture: (?:it|en|es|fr)
about:
url: /:sf_culture/:about.html
param: { module: about, action: index }
requirements:
sf_culture: (?:it|en|es|fr)
opera_slug:
url: /:sf_culture/opere/:operaslug.html
class: sfDoctrineRoute
param: { module: opera, action: permalink }
options: { model: Opera, type: object }
requirements:
sf_culture: (?:it|en|es|fr)
opere:
url: /:sf_culture/:opere.html
param: { module: opera, action: index }
requirements:
sf_culture: (?:it|en|es|fr)
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
_header.php
<ul>
<li><?php echo link_to(__('Home'), '@homepage') ?></li>
<li><?php echo link_to(__('About'), '@about?about='.strtolower(__('About'))) ?></li>
<li><?php echo link_to(__('Works'), '@opere?opere='.strtolower(__('Works'))) ?></li>
<li><?php echo link_to(__('Contacts'), '@contatti?contatti='.strtolower(__('Contacts'))) ?></li>
</ul>
當我點擊我的菜單(_header)上的按鈕,我總是重定向到的聯繫人頁面,看日誌,我可以看到
Match route "contatti" (/:sf_culture/:contatti.html) for /es/obras.html with parameters array ('module' => 'contatti', 'action' => 'index', 'sf_culture' => 'es', 'contatti' => 'obras',)
怎麼可能?我使用了@route sintax,所以我告訴symfony使用特定的路由,但這被忽略。
你對如何解決它有什麼想法嗎?
非常感謝
是的,我知道,symfony的從上到下一致的路線,但我想明確告訴路線的名字,那麼系統將使用那一個。 ..你有一些提示讓這些路線獨一無二嗎?非常感謝 – satboy78
@ satboy78編輯我的回答 – ilanco
好,完美,謝謝。現在與您的編輯我已經瞭解您的提示...所以這是不可能有像這樣的網址:www.webisite.com/about.html和www.website.com/contatti.html? – satboy78