Yanıtlar:
Magento 2'de.
Base url’si almak istiyorsanız, aşağıdaki kodu deneyebilirsiniz:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Nerede $this->_storeManager
örneğinin\Magento\Store\Model\StoreManagerInterface
bu yukarıdaki kod size sonuç verecektir
http://www.example.com ( Seo yeniden yazma etkinse )
Ve http://www.example.com/index.php ( Eğer Seo yeniden yazma etkin değilse )
Temel URL’yi istemiyorsanız index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Ayrıntılara bakın. magento2 get base url and media url and static url
Nesne Yöneticisini Kullanma
Temel URL:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
İndex.php olmadan Temel URL
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Medya tabanı URL'sini almak için:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
URL linkini almak için:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
$this->_storeManager
Sen almak için enjekte çağırmalıyız\Magento\Store\Model\StoreManagerInterface $storeManager
en __construct( )
az fonksiyon bloğu sınıfı
sadece gibi:
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Ayrıca alabilirsiniz baz url doğrudan en phtml
doğrudan çağrısı kullanarak object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Not: Directly call of object manager is not good idea
. Eğer temel URL'yi phtml'de istiyorsanız StoreManagerInterface
, bloğa enjekte edin .
Basitçe bu komutu, yanınızda uzanan bir sınıf kullanıyorsanız kullanın \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Eğer değilse, bunu kullanın:
$this->_storeManager->getStore()->getBaseUrl()
Veya bir PHTML şablonunda kullanıyorsanız, şunları kullanın:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Bununla birlikte, OP'nin sorusu, şu anda nereden kodlandığı ile ilgili hiçbir referans yapmamaktadır. Model, Yardımcı, Kontrolör, vb.
Magneto2'de: Bu, PHTML dosyasında URL linkini almanın yoludur:
echo $this->getUrl('about-us')
Umarım sizin için işe yarar
Eğer sadece Magento kurulumunuzun kök dizininden bir URL almak istiyorsanız, sadece getUrl kullanabilirsiniz. AbstractBlock sınıfından miras alır (Magento \ Framework \ View \ Element \ AbstractBlock), böylece bloklarınızdan herhangi birini kullanabilirsiniz. İşte bir örnek
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
İlk parametre istediğiniz yoldur ve kullanıcı https üzerinden tarama yapıyorsa ikincisi _secure seçeneğini ayarlar. Belirli bir dosya adını getUrl çağrısına birleştirerek yola ekleyebilir veya ilk parametreye ekleyebilirsiniz. Yol, Magento kurulumunuzun kök dizinine göredir.
mağaza yöneticisine enjekte edin ve basitçe temel URL'yi alın
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Not: Nesne yöneticisi oluşturmayın, daima enjekte edin
Peki ya Magento 2.0.0. CE Stable sürümü ve herhangi bir "Context" nesnesi türü, Magento\Backend\Block\Widget\Context
daha önce olduğu gibi sadece getStoreManager()->getStore()->getBaseUrl()
aşağıdaki gibi işlev çağrısı Block sınıfına yüklenmiştir :
$context->getStoreManager()->getStore()->getBaseUrl()
yapıcı içinde ayrıca \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
bu getBaseUrl()
işlevin içindeki gibi argümanları iletebilirsiniz .
Bu yardımcı olur umarım.
Magento kökünüzde Test.php dosyası oluşturun.
use Magento\Framework\App\Bootstrap;
include('app/bootstrap.php');
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$storeManager = $objectManager->get('Magento\Store\Model\StoreManagerInterface');
$baseUrl= $storeManager->getStore()->getBaseUrl();
Blok sınıf dosyanıza aşağıdaki işlevi ekleyin:
public function getImageUrl($link_url = '')
{
if(!empty($link_url))
{
$media_url = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $media_url.'/'.$link_url;
}
else
{
return '#';
}
}
Ve bunu .phtml şablon dosyanızdan aşağıdaki şekilde çağırınız:
$block->getImageUrl('<relative image path>')
Bunu kullanarak Magento2 Base url'yi alabilirsiniz:
$this->_storeManager->getStore()->getBaseUrl()
Magento 2'de.
Base url’si almak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
$this->_storeManager->getStore()->getBaseUrl()
ObjectManager kullanarak, aşağıdaki kodu kullanabilirsiniz
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Temel URL'yi ve diğer Magento2'yi bulduğum ayrıntılı öğreticiyi burada bulabilirsiniz. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}