Dans Magento 1 Mage::getBaseUrl();
, mais dans Magento 2, je dois passer le type d'objet de classe responsable dans le constructeur.
Je ne sais pas quelle classe je dois passer?
Dans magento 2.
Si vous voulez obtenir l'URL de base, vous pouvez essayer le code ci-dessous:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Où $this->_storeManager
exemple de\Magento\Store\Model\StoreManagerInterface
ce code ci-dessus vous donnera le résultat
http://www.example.com ( si la réécriture du référencement est activée )
Et http://www.example.com/index.php ( Si la réécriture du référencement n'est pas activée )
Si vous voulez l'URL de base sans index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Voir en détail à magento2 get base url and media url and static url
Utilisation du gestionnaire d'objets
URL de base:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
URL de base sans index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Pour obtenir l'URL de la base de média:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
pour obtenir l'URL du lien:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Pour obtenir le $this->_storeManager
Vous devriez appeler injecter\Magento\Store\Model\StoreManagerInterface $storeManager
at __construct( )
function at block class
juste comme :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
En outre, vous pouvez obtenir l’ URL de base directement lors de phtml
l’appel direct de object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Remarque: Directly call of object manager is not good idea
. Si vous voulez l'URL de base au phtml puis injectez StoreManagerInterface
au bloc
Utilisez simplement cette commande avec vous utilisez une classe qui s'étend
\Magento\Framework\View\Element\Template
.Sinon, utilisez ceci:
Ou si vous l'utilisez dans un modèle PHTML, utilisez:
la source
\Magento\Framework\View\Element\Template
. Cependant, la question du PO ne fait aucune référence à l'endroit où il code actuellement. Tels que modèle, assistant, contrôleur, etc.Dans Magneto2: Voici un moyen d'obtenir un lien URL dans un fichier PHTML:
echo $this->getUrl('about-us')
J'espère que ça marchera pour toi
la source
Si vous souhaitez simplement obtenir une URL à partir du répertoire racine de votre installation Magento, vous pouvez simplement utiliser getUrl. Il hérite de la classe AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) afin que vous puissiez l'utiliser avec l'un de vos blocs. Voici un exemple
Le premier paramètre est le chemin que vous souhaitez et le second définit l'option _secure si l'utilisateur navigue sur https. Vous pouvez ajouter au chemin en concaténant un nom de fichier spécifique sur l'appel getUrl ou vous pouvez l'ajouter au premier paramètre. Le chemin est relatif au répertoire racine de votre installation Magento.
la source
injecter le gérant du magasin et obtenir simplement l'URL de base
Remarque: ne créez pas toujours le gestionnaire d'objets.
la source
Bien si c'est Magento 2.0.0. La version CE Stable et n'importe quel type d'objet "Context" est déjà chargé dans la classe Block comme
Magento\Backend\Block\Widget\Context
il suffit d'appeler lagetStoreManager()->getStore()->getBaseUrl()
fonction comme ci-dessous:à l'intérieur du constructeur, vous pouvez également passer des arguments comme
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
dans cettegetBaseUrl()
fonction.J'espère que cela t'aides.
la source
La manière correcte d’obtenir un média en PHTML est:
la source
Simplement:
<?php $block->getBaseUrl() ?>
la source
Créez le fichier Test.php dans votre racine magento.
la source
Dans votre fichier de classe de bloc, ajoutez la fonction suivante:
Et appelez ceci à partir de votre fichier de modèle .phtml avec:
la source
Vous pouvez obtenir l'URL de base Magento2 en utilisant ceci:
la source
Dans magento 2.
Si vous voulez obtenir l'URL de base, vous pouvez utiliser le code ci-dessous:
En utilisant objectManager, vous pouvez utiliser le code suivant
la source
Voici le tutoriel détaillé que j'ai trouvé pour obtenir l'URL de base et d'autres dans Magento2. http://www.webmull.com/magento-2-getbase-url/
la source