Tôi muốn kiểm tra trang hiện tại là trang chủ, trang danh mục, trang sản phẩm & trang cms trong magento 2
Tôi muốn kiểm tra trang hiện tại là trang chủ, trang danh mục, trang sản phẩm & trang cms trong magento 2
Câu trả lời:
Bạn có thể thử điều này: Tiêm một thể hiện \Magento\Framework\App\Request\Http
trong hàm tạo của lớp. Nếu bạn đang ở trong một bộ điều khiển, bạn không cần phải làm điều đó. Bạn đã có thể truy cập nó như thế này$request = $this->getRequest()
public function __construct(
...
\Magento\Framework\App\Request\Http $request
) {
...
$this->_request = $request;
}
Sau đó, bạn có thể kiểm tra nếu trang chủ như thế này:
if ($this->_request->getFullActionName() == 'cms_index_index') {
//you are on the homepage
}
if ($this->_request->getFullActionName() == 'catalog_product_view') {
//you are on the product page
}
if ($this->_request->getFullActionName() == 'catalog_category_view') {
//you are on the category page
}
$this->_request->getFullActionName()
quảng cáo sử dụng nó trong tệp phtml.
Từ tập tin phtml bên trong này đã làm việc cho tôi:
if ($this->getRequest()->getFullActionName() == 'cms_index_index') {
//you are on the homepage
}
if ($this->getRequest()->getFullActionName() == 'catalog_product_view') {
//you are on the product page
}
if ($this->getRequest()->getFullActionName() == 'catalog_category_view') {
//you are on the category page
}
Hãy thử cái này:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$request = $objectManager->get('Magento\Framework\App\Action\Context')->getRequest();
if ($request->getFullActionName() == 'cms_index_index') {
// is homepage
}
Bởi vì mẫu thiết kế Dependency Injection. Bạn tạo một mô-đun để yêu cầu một tài nguyên theo yêu cầu. Quản lý đối tượng đang đi ngược lại mô hình đó. Tuy nhiên, nó hoạt động rất tốt nhưng giống như sử dụng Mage trở lại - chậm.
Hãy thử mã dưới đây:
protected $_logo;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Theme\Block\Html\Header\Logo $logo,
array $data = []
)
{
$this->_logo = $logo;
parent::__construct($context, $data);
}
public function isHomePage()
{
return $this->_logo->isHomePage();
}
Sử dụng Trình quản lý đối tượng
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$logo = $objectManager->get('Magento\Theme\Block\Html\Header\Logo');
var_dump($logo->isHomePage());