Как получить параметр url в контроллере Magento?

Есть ли функция Magento для получения значения "id" из этого URL:

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

Я знаю, что могу разделить URL на "/", чтобы получить значение, но я бы предпочел одну функцию.

Это не работает:

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

Он работает только, если я использую http://example.com/path/action?id=123

Ответ 1

Алгоритм маршрутизации по умолчанию Magento использует URL три части.

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

Поэтому, когда вы вызываете

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

Слово path - ваше имя, action - имя вашего контроллера, а id - ваш метод действий. После этих трех методов вы можете использовать getParam для захвата пары ключ/значение

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

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

Вы также можете использовать метод getParams для захвата массива параметров

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

Ответ 2

Если ваш URL-адрес выглядит следующим образом: http://yoursiteurl.com/index.php/admin/sales_order_invoice/save/order_id/1795/key/b62f67bcaa908cdf54f0d4260d4fa847/

затем используйте:

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

Если вы хотите получить значение всего Url или значение параметра, чем использовать код ниже.

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

Если ваш URL-адрес выглядит следующим образом: http://magentoo.blogspot.com/magentooo/userId=21

затем используйте это, чтобы получить значение url

echo $_GET['userId'];

Если вы хотите получить дополнительную информацию об этом нажмите здесь.

Ответ 3

Если это модуль Magento, вы можете использовать Geten Object getter. Если это для вашего собственного контроллера модуля, вы можете использовать метод register.

Источник: http://www.vjtemplates.com/blog/magento/register-and-registry