Bagaimana cara mendapatkan nama toko di templat?

13

Bagaimana mungkin untuk menampilkan nama toko saat ini di templat khusus Magento 2 dengan blok khusus?

Dominik Barann
sumber
template apa ??
Marius
template khusus menggunakan blok khusus
Dominik Barann

Jawaban:

17

Anda perlu menggunakan instance dari \Magento\Framework\App\Config\ScopeConfigInterfacedi blok Anda:

Buat metodenya getStoreName()

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

dan hubungi template Anda echo $this->getStoreName()

Marius
sumber
Loos seperti solusi hebat, tapi saya mendapatkan kesalahan berikut: Kesalahan fatal: Panggil ke fungsi pengiriman anggota () pada non-objek di /vendor/magento/framework/View/Element/AbstractBlock.php pada baris 637.
Dominik Barann
hapus folder var / generation
Marius
1
Pendekatan @Marius benar, tetapi tidak berhasil untuk saya. Sebaliknya saya telah menggunakan \Magento\Store\Model\StoreManagerInterface $storeManager dalam konstruktor dan public function getStoreName() { return $this->storeManager->getStore()->getName(); } Alih-alih getName()Anda dapat menggunakan getCode(), getId().
Razvan
9

Gunakan manajer toko, yang menyimpan informasi tentang toko aktif. Jika blok khusus tidak diwarisi dari Templateblok, menyuntikkan dependensi \Magento\Store\Model\StoreManagerInterfacedalam konstruksi.

<?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();
    }
}

Kemudian di templat:

<?php
/**
 * @var $block \VendorName\ModuleName\Block\CustomBlock
 */
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>
Alex Paliarush
sumber
Terima kasih atas solusi Anda, tetapi saya tidak ingin menampilkan nama tampilan toko. Mencari nama konfigurasi toko.
Dominik Barann
4

Untuk mendapatkan nilai konfigurasi toko seperti general/store_information/nameAnda dapat menggunakan yang berikut ini

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

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

Namun, melakukan ini dari blok atau helper akan lebih bersih. Di bawah ini adalah kelas pembantu yang akan ada di modul khusus Anda sendiri

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
        );
    }
}

Yang mana Anda akan menyuntikkan sebagai dependensi di kelas blok Anda

Sander Mangel
sumber