मुझे नहीं लगता कि इसे हासिल करने के लिए कोई 'बिल्ट इन' तरीका है।
विधि Mage_Catalog_Model_Url::getUrl()
किसी भी पैरामीटर को स्वीकार नहीं करती है। आप इस विधि को ओवरराइड कर सकते हैं, लेकिन जब तक आपको सभी श्रेणियों के लिए कुछ इस तरह की आवश्यकता नहीं होती है, तब तक मुझे ऐसा करने की कोई आवश्यकता नहीं है।
मुझे लगता है कि सबसे सस्ता तरीका सीधे मापदंडों को जोड़ना है।
$params = array('param1' => 'myparam1','param2' => 'myparam2');
$categoryUrl = Mage::getModel('catalog/category')->load(1)->getUrl();
$urlParams = array();
foreach ($params as $name=>$value){
$urlParams[] = $name.'='.urlencode($value);
}
$urlParams = implode('&', $urlParams);
if ($urlParams){
$glue = '?';
if (strpos($categoryUrl, $glue) !== false){//this should never happen - but just in case
$glue = '&';
}
$categoryUrl .= $glue.$urlParams;
}
हर बार जब आपको जरूरत हो तो कोड लिखने से बचने के लिए आप इसे सहायक बना सकते हैं।
आपके द्वारा बनाए गए किसी भी अन्य url के लिए Mage::getUrl()
, इस तरह से क्वेरी परम को पास कर सकते हैं:
$url = Mage::getUrl('module/controller/action', array('param1'=>'val1', '_query'=>array('p1'=>'v1', 'p2'=>'v2')));
उपरोक्त कोड निम्नलिखित उत्पन्न करेगा:
http://mysite.com/module/controller/action/param1/val1/?p1=v1&p2=v2