2013-10-06 13 views
11

Gibt es eine Magento-Funktion den Wert von „id“ von dieser URL zu erhalten:Wie bekomme ich einen URL-Parameter im Magento Controller?

http://example.com/path/action/id/123

Ich weiß, dass ich die URL aufspalten auf „/“ um den Wert zu erhalten, aber ich würde es vorziehen, ein einzelne Funktion.

Dies funktioniert nicht:

$id = $this->getRequest()->getParam('id'); 

Es funktioniert nur, wenn ich http://example.com/path/action?id=123

+1

$ id = $ this-> getRequest() -> getParam ('id'); Dies ist nur Arbeit in der Klasse, die sich auf Mage_Adminhtml_Controller_Action (auf Admin) oder Mage_Core_Controller_Front_Action (auf Frontend) erstreckt. Wenn das nicht funktioniert, bedeutet dies, dass Ihr Controller nicht angerufen wird. –

Antwort

36

Magento Standard-Routing-Algorithmus verwendet dreiteiliger URLs. So

http://example.com/front-name/controller-name/action-method 

, wenn Sie anrufen

http://example.com/path/action/id/123 

Das Wort path ist der Hausname, action ist Ihr Controller-Namen, und id ist Ihre Aktion-Methode. Nach diese drei Methoden können Sie getParam verwenden, um einen Schlüssel/Wert-Paar

http://example.com/path/action/id/foo/123 

//in a controller 
var_dump($this->getRequest()->getParam('foo')); 

Sie auch die getParams Methode verwenden, kann zu greifen eine Reihe von Parametern

$this->getRequest()->getParams() 
+0

Ich verstehe. Ich denke aber, das Problem lag auch daran, dass ich keinen Router definiert habe. Ich war mit einem Rewrite: – jogi99

+0

<[CDATA [#^/?Ajax/product/item #]]> /mymod/mycon jogi99

6

zu greifen Wenn Ihre URL der ist folgende Struktur: http://yoursiteurl.com/index.php/admin/sales_order_invoice/save/order_id/1795/key/b62f67bcaa908cdf54f0d4260d4fa847/

dann verwenden:

echo $this->getRequest()->getParam('order_id'); // output is 1795 

Wenn Sie den Wert "Alle URL" oder "Parameter" erhalten möchten, verwenden Sie den folgenden Code.

var_dump($this->getRequest()->getParams()); 

Wenn Ihre URL ist wie folgt: http://magentoo.blogspot.com/magentooo/userId=21

dann dies, um den Wert von url

echo $_GET['userId']; 

zu bekommen Wenn Sie diese click here weitere Informationen über wollen.

Verwandte Themen