Şablonda mağaza adı nasıl alınır?


Yanıtlar:


17

\Magento\Framework\App\Config\ScopeConfigInterfacebloğunuzda örneğini kullanmanız gerekir :

Yöntemi oluşturun getStoreName()

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

ve şablonunuzu arayın echo $this->getStoreName()


Harika bir çözüm gibi görünüyor, ancak aşağıdaki hatayı alıyorum: Önemli hata: 637 satırındaki /vendor/magento/framework/View/Element/AbstractBlock.php nesnesinde olmayan bir nesneye üye işlev dağıtımı () çağrısı.
Dominik Barann

var / generation klasörünü temizle
Marius

1
@Marius'un yaklaşımı doğru, ama benim için işe yaramadı. Bunun yerine ben kullandım \Magento\Store\Model\StoreManagerInterface $storeManager yapıcı ve public function getStoreName() { return $this->storeManager->getStore()->getName(); } yerine getName()kullanabileceğiniz getCode(), getId().
Razvan

9

Etkin mağaza hakkında bilgi tutan mağaza yöneticisini kullanın. Özel blok bloktan devralınmamışsa, yapıya Templatebağımlılığı enjekte edin \Magento\Store\Model\StoreManagerInterface.

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

Sonra şablonda:

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

Çözümünüz için teşekkürler, ancak mağaza görünüm adını göstermek istemiyorum.Yapılandırmanın mağaza adını aradı.
Dominik Barann

4

general/store_information/nameSizin gibi bir mağaza yapılandırma değeri almak için aşağıdakileri kullanabilirsiniz

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

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

Bununla birlikte, bunu bir bloktan veya yardımcıdan yapmak daha temiz olacaktır. Aşağıda kendi özel modülünüzde bulunabilecek bir yardımcı sınıf bulunmaktadır

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

Blok sınıfınıza bağımlılık olarak enjekte edeceğiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.