Câu trả lời:
Trong magento 2.
Nếu bạn muốn lấy url cơ sở, thì bạn có thể thử mã bên dưới:
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
Trường $this->_storeManager
hợp của\Magento\Store\Model\StoreManagerInterface
đoạn mã trên sẽ cho bạn kết quả
http://www.example.com ( Nếu Seo viết lại được bật )
Và http://www.example.com/index.php ( Nếu Seo viết lại không được bật )
Nếu bạn muốn URL cơ sở mà không có index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
Xem chi tiết tại magento2 get base url and media url and static url
Sử dụng Trình quản lý đối tượng
Url cơ sở:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
Url cơ sở không có index.php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Để nhận url cơ sở truyền thông:
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
để nhận url liên kết:
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
Để nhận được $this->_storeManager
Bạn nên gọi tiêm\Magento\Store\Model\StoreManagerInterface $storeManager
tại __construct( )
chức năng ở lớp khối
giống như :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
Ngoài ra, bạn có thể nhận được địa chỉ cơ sở trực tiếp tại phtml
sử dụng cuộc gọi trực tiếp object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
Lưu ý : Directly call of object manager is not good idea
. Nếu bạn muốn url cơ sở tại phtml thì hãy tiêm StoreManagerInterface
tại khối
Đơn giản chỉ cần sử dụng lệnh này với bạn đang sử dụng một lớp mở rộng \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
Nếu không, sử dụng cái này:
$this->_storeManager->getStore()->getBaseUrl()
Hoặc nếu bạn đang sử dụng nó trong mẫu PHTML, hãy sử dụng:
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
. Tuy nhiên, câu hỏi của OP không liên quan đến việc anh ta hiện đang viết mã từ đâu. Chẳng hạn như Người mẫu, Người trợ giúp, Người điều khiển, v.v.
Trong Magneto2: Đây là cách để nhận liên kết Url trong tệp PHTML:
echo $this->getUrl('about-us')
Tôi hy vọng nó sẽ làm việc cho bạn
Nếu bạn chỉ muốn nhận URL từ thư mục gốc của cài đặt Magento, bạn chỉ cần sử dụng getUrl. Nó kế thừa từ lớp AbstractBlock (Magento \ Framework \ View \ Element \ AbstractBlock) để bạn có thể sử dụng nó bất kỳ khối nào của bạn. Đây là một ví dụ
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
Tham số đầu tiên là đường dẫn bạn muốn và thứ hai đặt tùy chọn _secure nếu người dùng đang duyệt qua https. Bạn có thể thêm vào đường dẫn bằng cách nối một tên tệp cụ thể vào lệnh gọi getUrl hoặc bạn có thể thêm nó vào tham số đầu tiên. Đường dẫn liên quan đến thư mục gốc của bản cài đặt Magento của bạn.
quản lý cửa hàng và chỉ cần lấy url cơ sở
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
Lưu ý: không tạo trình quản lý đối tượng luôn luôn tiêm
Chà nếu là Magento 2.0.0. Phiên bản ổn định CE và bất kỳ loại đối tượng "Ngữ cảnh" nào đã được tải trong lớp Block như Magento\Backend\Block\Widget\Context
sau đó chỉ cần gọi getStoreManager()->getStore()->getBaseUrl()
hàm như bên dưới:
$context->getStoreManager()->getStore()->getBaseUrl()
bên trong hàm tạo, bạn cũng có thể truyền các đối số như \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
bên trong getBaseUrl()
hàm này .
Hi vọng điêu nay co ich.
Trong tập tin gốc magento của bạn tạo tập tin Test.php.
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();
Trong tệp lớp khối của bạn thêm chức năng sau:
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 '#';
}
}
Và gọi nó từ tệp mẫu .phtml của bạn bằng cách sau:
$block->getImageUrl('<relative image path>')
Bạn có thể nhận url Magento2 Base bằng cách sử dụng:
$this->_storeManager->getStore()->getBaseUrl()
Trong magento 2.
Nếu bạn muốn lấy url cơ sở, thì bạn có thể sử dụng mã dưới đây:
$this->_storeManager->getStore()->getBaseUrl()
Bằng cách sử dụng objectManager, bạn có thể sử dụng đoạn mã sau
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
Dưới đây là hướng dẫn chi tiết tôi tìm thấy để lấy url cơ sở và các url khác trong Magento2. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}