web-dev-qa-db-fra.com

Comment obtenir un paramètre d'URL dans le contrôleur Magento?

Existe-t-il une fonction Magento pour obtenir la valeur "id" à partir de cette URL:

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

Je sais que je peux séparer l'URL sur "/" pour obtenir la valeur, mais je préférerais une seule fonction. 

Cela ne marche pas:

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

Cela ne fonctionne que si j'utilise http://example.com/path/action?id=123

14
jogi99

L'algorithme de routage par défaut de Magento utilise en trois parties URL. 

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

Alors quand tu appelles 

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

Le mot path est votre nom, action est le nom de votre contrôleur et id est votre méthode d'action. Après ces trois méthodes, vous pouvez utiliser getParam pour récupérer une paire clé/valeur

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

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

Vous pouvez également utiliser la méthode getParams pour récupérer un tableau de paramètres.

$this->getRequest()->getParams()
39
Alan Storm

Si votre URL est la structure suivante: http://yoursiteurl.com/index.php/admin/sales_order_invoice/save/order_id/1795/key/b62f67bcaa908cdf54f0d4260d4fa847/

puis utilisez:

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

Si vous voulez obtenir toutes les valeurs d'URL ou de paramètres, utilisez le code ci-dessous. 

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

Si votre URL est comme ceci: http://magentoo.blogspot.com/magentooo/userId=21

puis utilisez ceci pour obtenir la valeur de l'URL

echo $_GET['userId'];

Si vous souhaitez plus d’informations sur ce sujet cliquez ici .

6
user3146094

S'il s'agit d'un module Magento, vous pouvez utiliser le getter d'objet Varien. Si c'est pour votre propre contrôleur de module, vous pouvez utiliser la méthode register.

Source: http://www.vjtemplates.com/blog/magento/register-and-registry

0
user12345678