วิธีรับค่าจากตาราง 'core_config_data` ใน Magento 2


41

Magento 1.x ใช้Mage::getStoreConfig('sections/groups/fields')รับข้อมูลบนcore_config_dataโต๊ะ

Magento2 ได้รับประโยชน์core_config_dataอย่างไรจากโต๊ะ?

คำตอบ:


100

เราจำเป็นต้องเรียกใช้วิธีการเริ่มต้นที่มีอยู่

เพียงใช้\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfigในอาร์กิวเมนต์ตัวสร้างของคุณและตั้งค่าคุณสมบัติคลาส:$this->scopeConfig = $scopeConfig;

ตอนนี้เพื่อรับค่าการตั้งค่าใช้

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

ฉันได้รับคำตอบจากลิงค์นี้และอ้างอิงถึงสิ่งนี้


3
ดีหนึ่ง Meenakshi! ให้ทัน
anshuman

คุณจะได้รับจากสคริปต์แยกต่างหากไม่ใช่จากภายในระบบไฟล์ magento หรือโมดูลได้อย่างไร ถ้าคุณสร้างคลาสในสคริปต์ของคุณและสร้างอินสแตนซ์คลาสควรสืบทอดจากอะไรและคุณจะแน่ใจได้อย่างไรว่ามันโหลดไฟล์ที่เหมาะสมทั้งหมด
ahnbizcad

ขอบเขตใดที่ได้รับการกำหนดค่าจาก มุมมองร้านค้าที่ลูกค้าดูอยู่ในปัจจุบัน?
Erfan

ใช่จะใช้มุมมองหน้าร้านของลูกค้าในปัจจุบัน
MeenakshiSundaram R

@MeenakshiSundaramR ผมขอให้นอกเหนือจากการโพสต์นี้วิธีที่จะให้จัดส่งฟรีสำหรับผลิตภัณฑ์ที่เลือกใช้ sku.Help ฉันที่ magento.stackexchange.com/q/215022/57334
ZUS

4

สร้างฟังก์ชั่นสำหรับรับค่าการกำหนดค่าในตัวช่วยของโมดูลที่คุณกำหนดเอง

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

และโทรไปที่ใดก็ได้ที่คุณต้องการตัวอย่างเช่นใน test.phtml

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

ในการบล็อกและผู้ช่วยเรียกเช่นนี้:

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

7
แนะนำใน M2 เพื่อชอบ DI approch ดังนั้น$this->_objectManager->create(...)ควรหลีกเลี่ยงการใช้
Anna Völkl

ขอบคุณ @ AnnaVölklแล้วอะไรคือสิ่งที่จะช่วยทดแทนคุณได้โปรดโพสต์คำตอบที่คล้ายกันที่นี่
Manish

ดูคำตอบ upvoted ด้านบน
Anna Völkl

3

ฉันใช้วิธีการดังต่อไปนี้เพื่อเรียกคืนตัวแปร

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.