テンプレートで店舗名を取得する方法は?


回答:


17

\Magento\Framework\App\Config\ScopeConfigInterfaceブロックでのインスタンスを使用する必要があります。

メソッドを作成する getStoreName()

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

そしてテンプレートを呼び出します echo $this->getStoreName()


最適なソリューションのようなロース、私は次のエラーを取得します。致命的なエラー:コールをライン637上の/vendor/magento/framework/View/Element/AbstractBlock.php内の非オブジェクトのメンバ関数派遣()に
ドミニクバラン

var / generationフォルダーをクリアします
マリウス

1
@Mariusのアプローチは正しいですが、私にはうまくいきませんでした。代わりに私が使ってきた \Magento\Store\Model\StoreManagerInterface $storeManager コンストラクタにし、 public function getStoreName() { return $this->storeManager->getStore()->getName(); } 代わりにgetName()あなたが使用することができgetCode()getId()
ラズバン

9

アクティブなストアに関する情報を保持するストアマネージャーを使用します。カスタムブロックがブロックから継承されていない場合、コンストラクトにTemplate依存関係を注入し\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();
    }
}

次にテンプレートで:

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

ソリューションをお寄せいただきありがとうございますが、ストアビュー名を表示したくありません。構成のストア名を検索しました。
ドミニクバラン

4

general/store_information/name以下のようなストア構成値を取得するには

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

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

ただし、ブロックまたはヘルパーからこれを行うと、よりクリーンになります。以下は、独自のカスタムモジュールに存在するヘルパークラスです。

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

ブロッククラスに依存関係として注入するもの

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.