2013-10-04 104 views
0

我在我的控制器有這樣的代碼的Joomla MVC組件與友好的URL

class MyController extends MyBaseController { 

function redirectToCart() { 
    $link = JRoute::_('index.php?option=com_foo&view=cart'); 
    $this->setRedirect($link); 
    } 

} 

我也創造了我的菜單名「查看購物車」每次查看購物車相關的菜單重定向我點擊這個按鈕網址爲domainname.com/view-cart,但是當使用MVC重定向的URL是domainname.com/index.php?option=com_foo&view=cart

我怎樣才能在MVC中創建一個重定向,它與前端環節工作或至少創建一個用戶友好的URL

回答

0

你需要傳遞Itemid in url創建所需的SEO:

$link = JRoute::_('index.php?option=com_foo&view=cart&Itemid=your_itemid'); 

你應該把SEO的,看看有什麼Itemid是在你的菜單項,在您的網址中使用它。

或者你也可以動態地做這樣的:

$itemid = JRequest::getint('Itemid'); 

然後$link看起來:

$link = JRoute::_('index.php?option=com_foo&view=cart&Itemid='.$itemid); 

或者你可以把它從whatewer菜單項,你想是這樣的:

$item = JFactory::getApplication()->getMenu()->getItem($menuitem);//$menuitem is the id of menu 
$itemid = $item->id; 
+0

我認爲必須有一種動態的方式來做到這一點。我現在正在使用這種方法。但它對我來說似乎並不正確,因爲每次我使用這個擴展時,我都需要手動將代碼插入到代碼中。 –

+0

我剛剛更新了我的答案,看看 – JTC

+0

但這種方式,我仍然需要知道$ menuitem。如果我移動我的菜單或刪除它並在其他地方創建,我仍然需要轉到代碼以使其友好 –