2013-10-06 14 views
11

C'è una funzione Magento per ottenere il valore di "id" da questo URL:Come ottenere un parametro url nel controller Magento?

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

so di poter dividere l'url "/" per ottenere il valore, ma preferirei un singola funzione.

Questo non funziona:

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

Funziona solo se uso http://example.com/path/action?id=123

+1

$ id = $ this-> getRequest() -> getParam ('id'); questo è solo lavoro in classe che si estende a Mage_Adminhtml_Controller_Action (su admin) o Mage_Core_Controller_Front_Action (su frontend). se ciò non ha funzionato, significa che il controller non viene chiamato. –

risposta

36

algoritmo predefinito di routing di Magento usa tre parti URL.

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

Quindi, quando si chiamano

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

La parola path è il tuo nome davanti, action è il vostro nome del controller, e id è il vostro metodo di azione. Dopo questi tre metodi, è possibile utilizzare getParam per afferrare una coppia chiave/valore

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

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

È inoltre possibile utilizzare il metodo getParams per afferrare un array di parametri

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

Capisco. Comunque penso che il problema fosse anche perché non avevo definito un router. Stavo usando una riscrittura:! – jogi99

+0

<[CDATA [#^/?ajax/prodotto/item #]]> /mymod/mycon jogi99

6

se l'URL è il seguente struttura: http://yoursiteurl.com/index.php/admin/sales_order_invoice/save/order_id/1795/key/b62f67bcaa908cdf54f0d4260d4fa847/

quindi utilizzare:

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

Se si desidera ottenere il valore All Url o il valore del parametro, utilizzare il codice riportato di seguito.

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

Se l'URL è simile a questo: http://magentoo.blogspot.com/magentooo/userId=21

quindi utilizzare questo per ottenere il valore di URL

echo $_GET['userId']; 

Se volete maggiori informazioni su questo click here.

Problemi correlati