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?

John
sumber
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');
Mike
sumber
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');
Rushvi
sumber
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

Hassan Ali Shahzad
sumber