답변:
마 젠토 2에서.
Base url을 얻으려면 아래 코드를 시도하십시오.
/** * @var \Magento\Store\Model\StoreManagerInterface $this->_storeManager */ $this->_storeManager->getStore()->getBaseUrl();
어디 $this->_storeManager
인스턴스\Magento\Store\Model\StoreManagerInterface
이 코드는 결과를 줄 것입니다
http://www.example.com ( Seo 재 작성이 활성화 된 경우 )
그리고 http://www.example.com/index.php ( Seo 재 작성이 활성화되지 않은 경우 )
기본 URL없이 index.php
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB)
자세한 내용은 다음을 참조하십시오 magento2 get base url and media url and static url
객체 관리자 사용
기본 URL :
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl();
index.php가없는 기본 URL
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
미디어 기본 URL을 가져 오려면 :
$this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
링크 URL을 얻기 위해 :
$this->_storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
얻기 위해 $this->_storeManager
당신은 주사를 호출한다\Magento\Store\Model\StoreManagerInterface $storeManager
에서 __construct( )
의 기능 블록 클래스
처럼 :
public $_storeManager; public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, ..... ) { ... $this->_storeManager=$storeManager; }
또한, 당신이 얻을 수있는 기본 URL을 직접 에서 phtml
직접 호출을 사용하여 object Manager
.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface'); $storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
참고 : Directly call of object manager is not good idea
. phtml에서 기본 URL을 원하면 StoreManagerInterface
블록에 주입하십시오 .
확장하는 클래스를 사용하는 경우이 명령을 사용하십시오 \Magento\Framework\View\Element\Template
.
$this->getBaseUrl()
그렇지 않은 경우 다음을 사용하십시오.
$this->_storeManager->getStore()->getBaseUrl()
또는 PHTML 템플릿에서 사용하는 경우 다음을 사용하십시오.
$block->getBaseUrl()
\Magento\Framework\View\Element\Template
있습니다. 그러나 OP의 질문은 그가 현재 코딩하고있는 곳을 언급하지 않습니다. 모델, 도우미, 컨트롤러 등
Magneto2에서 : 이것은 PHTML 파일에서 URL 링크를 얻는 방법입니다 :
echo $this->getUrl('about-us')
나는 그것이 당신을 위해 작동하기를 바랍니다
Magento 설치 루트 디렉토리에서 URL을 가져 오려면 getUrl을 사용하면됩니다. AbstractBlock 클래스 (Magento \ Framework \ View \ Element \ AbstractBlock)에서 상속되므로 모든 블록을 사용할 수 있습니다. 여기에 예가 있습니다
$this->getUrl('pub/media/video/', ['_secure' => $this->getRequest()->isSecure()]).$fileName
첫 번째 매개 변수는 원하는 경로이고 두 번째 매개 변수는 사용자가 https를 탐색하는 경우 _secure 옵션을 설정합니다. getUrl 호출에 특정 파일 이름을 연결하여 경로에 추가하거나 첫 번째 매개 변수에 추가 할 수 있습니다. 경로는 Magento 설치의 루트 디렉토리를 기준으로합니다.
상점 관리자를 주입하고 단순히 기본 URL을 얻으십시오
public $_storeManager;
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
.....
) {
...
$this->_storeManager=$storeManager;
}
$this->_storeManager->getStore()->getBaseUrl();
참고 : 항상 주입하는 객체 관리자를 만들지 마십시오
Magento 2.0.0이라면 좋습니다. CE 안정 버전 및 모든 "컨텍스트"유형의 객체는 이미 블록 클래스에로드 된 Magento\Backend\Block\Widget\Context
후 getStoreManager()->getStore()->getBaseUrl()
아래와 같이 함수를 호출 합니다.
$context->getStoreManager()->getStore()->getBaseUrl()
생성자 \Magento\Framework\UrlInterface::URL_TYPE_MEDIA
내부 에서도이 getBaseUrl()
함수 내부 와 같은 인수를 전달할 수 있습니다 .
도움이 되었기를 바랍니다.
magento 루트에서 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();
블록 클래스 파일에서 다음 기능을 추가하십시오.
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 '#';
}
}
그리고 .phtml 템플릿 파일에서 다음과 같이 호출하십시오.
$block->getImageUrl('<relative image path>')
마 젠토 2에서.
Base url을 얻으려면 아래 코드를 사용할 수 있습니다.
$this->_storeManager->getStore()->getBaseUrl()
objectManager를 사용하면 다음 코드를 사용할 수 있습니다
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager>get('\Magento\Store\Model\StoreManagerInterface');
$storeManager->getStore()->getBaseUrl();
다음은 Magento2의 기본 URL과 다른 URL을 얻는 방법에 대한 자세한 자습서입니다. http://www.webmull.com/magento-2-getbase-url/
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
}