ฉันไม่คิดว่าจะมีวิธีการ "ในตัว" เพื่อบรรลุเป้าหมายนี้
วิธีการ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