テンプレートファイルで現在のページのURLを取得しようとしていますが、Magento 2.0でそれを行う方法がわかりません。
誰もそれを取得する方法を知っていますか? (テンプレート/ phtmlファイルで作業していることに注意してください)
ユニバーサルソリューション :は、テンプレートだけでなく、どこからでも機能します。
_/** @var \Magento\Framework\UrlInterface $urlInterface */
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
_
テンプレートから do it simplier : \Magento\Framework\View\Element\AbstractBlock::getUrl()
メソッドを使用して:
_$block->getUrl();
_
ファイルでオブジェクトマネージャインスタンスを直接使用しないでください
with objectManager
$urlInterface = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\UrlInterface');
$urlInterface->getCurrentUrl();
ファクトリーメソッドを使用
protected $_urlInterface;
public function __construct(
...
\Magento\Framework\UrlInterface $urlInterface
...
) {
$this->_urlInterface = $urlInterface;
}
public function getUrlInterfaceData()
{
echo $this->_urlInterface->getCurrentUrl();
echo $this->_urlInterface->getUrl();
echo $this->_urlInterface->getUrl('test/test2');
echo $this->_urlInterface->getBaseUrl();
}
Object Managerを使用しない場合、以下の行を使用してcurrentURL
をtemplatesファイルで取得できます
$this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])