Magento 2 - Bagaimana cara mendapatkan nilai konfigurasi ekstensi dalam file phtml?


21

Saya bekerja dengan Magento 2 - beta.

Tetapi tidak dapat menemukan cara mendapatkan nilai konfigurasi dalam file phtml.

misalnya: Saya ingin mendapatkan nilai konfigurasi modul khusus dalam Magento_Catalog/templates/product/list.phtmlfile.

Adakah yang tahu bagaimana melakukan ini?


dapatkah kamu memberikan contoh kehidupan nyata? apa sebenarnya yang Anda coba ambil?
Marius

Jawaban:


43

Anda dapat membuat fungsi untuk mendapatkan nilai konfigurasi dalam pembantu modul kustom Anda.

<?php
namespace Vendor\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function getConfig($config_path)
    {
        return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

Kemudian Anda bisa mendapatkan nilai konfigurasi untuk memanggil fungsi ini di file phtml apa pun.

$this->helper('Vendor\Module\Helper\Data')->getConfig('section/group/field');

1
Terima kasih telah menunjukkan bahwa ScopeConfigInterface tersedia dari kelas pembantu abstrak! Menyelamatkan saya mendefinisikannya kembali.
Robbie Averill

Bagaimana cara kerjanya dengan nilai konfigurasi default? Saya mencoba mencari cara mengatur nomor telepon di konfigurasi toko dan menampilkannya di header.phtml
Philip Deatherage

@Dmitry Saya pikir Anda masih perlu menyuntikkan \Magento\Framework\App\Config\ScopeConfigInterfacekonstruktor pembantu
fmsthird

6

Cara lain adalah seperti di bawah ini

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('group/field/value');

Anda tidak boleh menggunakan manajer objek untuk instantiasi model
Dave

Yang ini sangat salah.
medina

0

Koreksi dalam jawaban Rushvi: itu section/group/field

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('section/group/field');

Juga jika Anda ingin menambahkan filter toko misalnya ingin menampilkan teks jika menyimpan pada tingkat konfigurasi toko maka tambahkan saja berikut ini:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORES;
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('carriers/freeshipping/extra_info',$storeScope);

Kedua untuk kritik: itu bagus untuk dimasukkan dalam konstruktor kelas blok Anda melalui DI. Ini hanya konsep

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.