Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get a url parameter in Magento controller?

Is there a Magento function to get the value of "id" from this url:

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

I know I can split the url on "/" to get the value, but I'd prefer a single function.

This doesn't work:

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

It only works if I use http://example.com/path/action?id=123

like image 288
jogi99 Avatar asked Oct 06 '13 17:10

jogi99


2 Answers

If your url is the following structure: http://yoursiteurl.com/index.php/admin/sales_order_invoice/save/order_id/1795/key/b62f67bcaa908cdf54f0d4260d4fa847/

then use:

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

If you want to get All Url Value or Parameter value than use below code.

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

If your url is like this: http://magentoo.blogspot.com/magentooo/userId=21

then use this to get the value of url

echo $_GET['userId'];

If you want more info about this click here.

like image 20
user3146094 Avatar answered Oct 01 '22 20:10

user3146094


Magento's default routing algorithm uses three part URLs.

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

So when you call

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

The word path is your front name, action is your controller name, and id is your action method. After these three methods, you can use getParam to grab a key/value pair

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

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

You may also use the getParams method to grab an array of parameters

$this->getRequest()->getParams()
like image 118
Alan Storm Avatar answered Oct 01 '22 19:10

Alan Storm