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?

Tagihan
sumber

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

MeenakshiSundaram R
sumber
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');
Manish
sumber
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'];
mjdevloper
sumber