Làm thế nào để có được tên cửa hàng trong mẫu?


13

Làm cách nào có thể xuất tên cửa hàng hiện tại trong mẫu tùy chỉnh Magento 2 với một khối tùy chỉnh?


mẫu gì ??
Marius

mẫu tùy chỉnh bằng cách sử dụng một khối tùy chỉnh
Dominik Barann

Câu trả lời:


17

bạn cần sử dụng ví dụ \Magento\Framework\App\Config\ScopeConfigInterfacetrong khối của mình:

Tạo phương thức getStoreName()

public function getStoreName()
{
    return $this->_scopeConfig->getValue(
        'general/store_information/name',
        \Magento\Store\Model\ScopeInterface::SCOPE_STORE
    );
}

và gọi trong mẫu của bạn echo $this->getStoreName()


Không thích một giải pháp tuyệt vời, nhưng tôi gặp phải lỗi sau: Lỗi nghiêm trọng: Gọi đến một hàm chức năng thành viên () trên một đối tượng không trong /vendor/magento/framework/View/Euity/AbaugeBlock.php trên dòng 637.
Dominik Barann

xóa thư mục var / thế hệ
Marius

1
Cách tiếp cận của @Marius là đúng, nhưng nó không hiệu quả với tôi. Thay vào đó tôi đã sử dụng \Magento\Store\Model\StoreManagerInterface $storeManager trong constructor và public function getStoreName() { return $this->storeManager->getStore()->getName(); } Thay vì getName()bạn có thể sử dụng getCode(), getId().
Razvan

9

Sử dụng quản lý cửa hàng, nơi chứa thông tin về cửa hàng đang hoạt động. Nếu khối tùy chỉnh không được kế thừa từ Templatekhối, hãy thêm phụ thuộc vào \Magento\Store\Model\StoreManagerInterfacecấu trúc.

<?php
namespace VendorName\ModuleName\Block;

class CustomBlock extends \Magento\Framework\View\Element\Template
{
    /**
     * Get current store name.
     *
     * @return string
     */
    public function getCurrentStoreName()
    {
        return $this->_storeManager->getStore()->getName();
    }
}

Sau đó trong mẫu:

<?php
/**
 * @var $block \VendorName\ModuleName\Block\CustomBlock
 */
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>

Cảm ơn giải pháp của bạn, nhưng tôi không muốn hiển thị tên xem cửa hàng. Đã tìm kiếm tên cửa hàng của cấu hình.
Dominik Barann

4

Để có được giá trị cấu hình cửa hàng như general/store_information/namebạn có thể sử dụng như sau

$config = new \Magento\Framework\App\Config\ScopeConfigInterface();

echo $config->getValue('general/store_information/name');

Tuy nhiên, làm điều này từ một khối hoặc người trợ giúp sẽ sạch hơn. Dưới đây là một lớp trợ giúp sẽ tồn tại trong mô-đun tùy chỉnh của riêng bạn

namespace [Namespace]\[Module]\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    /**
     * Retrieve store name
     *
     * @return string|null
     */
    public function getStoreName()
    {
        return $this->scopeConfig->getValue(
            'general/store_information/name',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

Mà bạn sẽ tiêm như là phụ thuộc trong lớp khối của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.