2011-09-08 8 views
5

मैं सिम्फनी 2 का उपयोग कर एक पुरानी परियोजना को फिर से लिख रहा हूं इसलिए मैं ढांचे को आज़मा सकता हूं। मेरे पास यूआरएल है जो फॉर्म का होगा:Symfony2 में क्वेरी स्ट्रिंग का उपयोग करके मैं URL को कैसे रूट करूं?

/profile/{id} 

स्नैफ़ज़ी तरीके से सिम्फनी 2 करता है। हालांकि, एक ही पृष्ठ मूल रूप से करने से मिला था:

/profile.php?id=12345 

तो, में मामला किसी एक पुराने यूआरएल है, मैं इन कड़ियों रीडायरेक्ट करना चाहते हैं। समस्या यह है कि, मुझे नहीं पता कि इस प्रकृति के मार्ग कैसे पकड़ें। मैंने

/profile.php?id={id} 

लेकिन यह काम नहीं कर रहा था। मैं इस मार्ग को कैसे स्थापित कर सकता हूं?

का पालन-अप: मैं करता हूँ "कैच-ऑल" नहीं करना चाहते (ताकि मैं भविष्य कीड़े डर यह मेरे लिए गैर सहज है क्योंकि), और मैं उसी के लिए htaccess के माध्यम से यह करने के लिए नहीं करना पसंद करेंगे कारण। मुझे लगता है कि सबसे अच्छा विकल्प "/profile.php" से मेल खाता है, फिर नियंत्रक में, जांचें कि "आईडी" क्वेरी-स्ट्रिंग में मौजूद है और तदनुसार रीडायरेक्ट करें। यदि ऐसा नहीं होता है, तो मैं 404.

उत्तर

3

पर रीडायरेक्ट करेगा मैं यहाँ दो विकल्प देखेंगे:

  1. आप नए (/ प्रोफाइल पर अपने पुराने स्कीमा (/profile.php?id=54321) नक्शा/54321) mod_rewrite का उपयोग कर (यदि आप अपाचे का उपयोग करते हैं)।

  2. आप सिम्फनी के भीतर एक मैपर लिखते हैं। यही कारण है कि मार्ग की अपनी सूची के अंत में मतलब है कि आप एक पैटर्न है कि सब कुछ अभी तक catched नहीं पकड़ेगा निर्दिष्ट करें:


whatever: 
    pattern: /{whatever} 
    defaults: { _controller: CoreBundle:Default:whatever } 
    requirements: 
    whatever: .+ 

के लिए (2) आप क्या जांच करने के लिए होगा अनुरोध-वस्तु आपको प्रश्नों के लिए ऑफ़र करती है (जैसे getQueryString()), b/c मुझे यकीन नहीं है कि क्या ऐसा कुछ संभव है जैसे xyz मार्ग में मिलान किया जा रहा हो।

+0

क्या सही mod_rewrite होगा: 'पुनर्लेखन^^ profile.php? Id = (\ d +) $/प्रोफ़ाइल/$ 1 [आर = 301] '? –

+0

मैं सिर्फ यह सत्यापित करना चाहता हूं कि यह सबसे अच्छी रणनीति है, क्योंकि मैं Apache htaccess shenanigans –

+0

में कोई विशेषज्ञ नहीं हूं। आप यहां पुनः लिखने का परीक्षण कर सकते हैं: http://martinmelin.se/rewrite-rule-tester/। हालांकि मैं इसे एसएफ के साथ संभालना पसंद करूंगा। क्योंकि मार्ग आजकल मॉडल/तर्क का हिस्सा हैं। – Raffael

संबंधित मुद्दे

 संबंधित मुद्दे