2008-08-29 15 views

उत्तर

7

यदि आपका उद्देश्य अपने आवेदन भर उपयोगकर्ता के अनुकूल यूआरएल है निम्नलिखित दृष्टिकोण का उपयोग करने के लिए है, तो:

1) आवेदन के routing.yml फ़ाइल में अपने मॉड्यूल/कार्रवाई के लिए एक मार्ग नियम बनाएं। निम्न उदाहरण, एक कार्रवाई है कि एक आवेदन में सबसे हाल ही सवालों से पता चलता के लिए एक रूटिंग नियम है पेज 1 करने के लिए दोषी (एक पेजर का उपयोग कर):

recent_questions: 
    url: questions/recent/:page 
    param: { module: questions, action: recent, page: 1 } 

2) एक बार रूटिंग नियम सेट कर दिया जाता, url_for() सहायक का उपयोग आउटगोइंग यूआरएल प्रारूपित करने के लिए अपने टेम्पलेट में।

<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a> 

इस उदाहरण में, निम्न URL निर्माण किया जाएगा: http://myapp/questions/recent/1.html

3) आने वाली यूआरएल (अनुरोध) रूटिंग प्रणाली द्वारा विश्लेषण किया जाएगा, और अगर एक पैटर्न मैच रूटिंग नियम विन्यास में पाया जाता है, जिसका नाम वाइल्डकार्ड (यानी। URL के :/page भाग) अनुरोध पैरामीटर बन जाएगा।

तुम भी link_to() सहायक उत्पादन के लिए एक URL एचटीएमएल <a> टैग का उपयोग कर के बिना उपयोग कर सकते हैं।

+0

बस एक नाइट, लेकिन यूआरएल को .html भाग के साथ नहीं बनाया जाएगा जब तक कि एप्लिकेशन ऐसा करने के लिए कॉन्फ़िगर नहीं किया जाता है (डिफ़ॉल्ट रूप से यह नहीं है)। –

1

यह सलाह सिम्फनी 1.0 के लिए है। यह शायद बाद के संस्करणों के लिए काम करेगा।

अपने sfaction वर्ग भीतर :

स्ट्रिंग genUrl ($ मापदंडों = सरणी(), $ निरपेक्ष = false)

जैसे। $ यह-> getController() -> genUrl ('yourmodule/youraction? Key = value & key2 = value', true);

एक टेम्पलेट में:

यह एक सामान्य लिंक जेनरेट होगा।

स्ट्रिंग link_to ($ name, $ internal_uri, $ options = array());

उदाहरण के लिए। link_to ('मेरा लिंक नाम', 'yourmodule/youraction? Key = value & key2 = value');

0

इसके अलावा, यदि आप वास्तव में है कि यूआरएल के साथ एक क्वेरी स्ट्रिंग चाहते हैं, तो आप इस का उपयोग करें:

link_to('My link name', 'yourmodule/youraction?key=value&key2=value',array('query_string'=>'page=2')); 

अन्यथा, यह यूआरएल के हिस्से के रूप में यह रूट करने के लिए प्रयास करने के लिए और अधिक संभावना अपनी कार्रवाई को तोड़ने जा रहा है।

0

आप पहले नियम को परिभाषित किए बिना सीधे यूआरएल उत्पन्न कर सकते हैं।

$this->generateUrl('default', array('module'=>'[ModuleName]','action'=>'[ActionName]')) 

आप टेम्पलेट्स में URL उत्पन्न करना चाहते हैं, तो आप उपयोग कर सकते हैं url_for() सहायक:

आप कार्यों में यूआरएल उत्पन्न करना चाहते हैं, तो आप generateUrl() सहायक का उपयोग कर सकते :

url_for('[ModuleName]/[ActionName]', $absolute) 

सेट $ निरपेक्ष सही/गलत रूप में, न गूंज उपयोग करने के लिए यदि आप इसे प्रदर्शित करना चाहते हैं भूल जाते हैं।

लेकिन अगर आप एक लिंक (<a href=""></a> की तरह कुछ), LINK_TO करना चाहते हैं() सहायक करेंगे।

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