Bagaimana cara mendapatkan nama toko di templat?


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()


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>";
?>

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.