Как получить параметр 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