Cara mendapatkan nilai dari tabel `core_config_data` di Magento 2


41

Magento 1.x gunakan Mage::getStoreConfig('sections/groups/fields')dapatkan data di atas core_config_datameja.

Bagaimana cara Magento2 mendapatkan nilai dari core_config_datatabel?

Jawaban:


100

Kita perlu memanggil metode default yang tersedia.

Cukup Gunakan \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, Dalam argumen konstruktor Anda dan atur properti kelas:$this->scopeConfig = $scopeConfig;

Sekarang untuk Dapatkan nilai konfigurasi cukup gunakan

$this->scopeConfig->getValue('dev/debug/template_hints', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);

Saya sudah mendapatkan jawaban dari tautan ini dan merujuk ini


3
bagus Meenakshi! pertahankan
anshuman

Bagaimana Anda mendapatkannya dari skrip terpisah, bukan dari dalam sistem file magento atau modul? Jika Anda membuat kelas dalam skrip Anda dan membuat instance, dari mana kelas mewarisi dari, dan bagaimana Anda memastikan itu memuat semua file yang tepat?
ahnbizcad

Cakupan mana dari ini mendapatkan konfigurasi? Tampilan toko yang saat ini dilihat oleh pelanggan?
Erfan

ya, ini akan mengambil tampilan toko saat ini dari pelanggan
MeenakshiSundaram R

@MeenakshiSundaramR Saya meminta selain dari pos ini, bagaimana cara memberikan pengiriman gratis untuk produk-produk tertentu menggunakan sku. Bantu saya di magento.stackexchange.com/q/215022/57334
zus

4

Buat fungsi untuk mendapatkan nilai konfigurasi di pembantu modul khusus Anda.

public function getConfig($config_path)
{
    return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
            );
}

dan hubungi mana saja yang Anda inginkan misalnya di test.phtml

$moduleStatus = $this->helper('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

Dalam panggilan block dan helper seperti ini:

 $this->_objectManager->create('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

7
Direkomendasikan dalam M2 untuk lebih memilih pendekatan DI. Karena itu, penggunaan $this->_objectManager->create(...)harus dihindari.
Anna Völkl

Terima kasih @ AnnaVölkl, lalu apa pengganti yang dapat Anda kirimkan jawaban serupa di sini?
Manish

Lihat jawaban yang dipilih di atas.
Anna Völkl

3

Saya telah menggunakan metode berikut untuk retrive variabel

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
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.