मैं Magento 2 को प्रोग्रामेटिक रूप से core_config_data में मान कैसे सेट कर सकता हूं?


13

मुझे पता है कि आप Magento 1 में कॉन्फ़िगर डेटा सेट कर सकते हैं:

Mage::getModel('core/config')->saveConfig('my/path/whatever', $value);

और आप Magento 2 में कॉन्फ़िगर डेटा प्राप्त कर सकते हैं:

protected $_scopeConfig

public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig) {
    $this->_scopeConfig = $scopeConfig;
}

+

$this->_scopeConfig->getValue( 'path/of/config', \Magento\Store\Model\ScopeInterface::SCOPE_STORE );

लेकिन मैं यह पता नहीं लगा सकता कि मैं Magento 2 में कॉन्फ़िगर डेटा कैसे बचा सकता हूं

जवाबों:


24

यह है कि आपको magento2 core_config_data में डेटा कैसे बचाना चाहिए

    use Magento\Framework\App\Config\ScopeConfigInterface;

    /**
     *  @var \Magento\Framework\App\Config\Storage\WriterInterface
     */
    protected $configWriter;

    /**
     *
     * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
     */
    public function __construct(
        ....
        \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
        .....
    )
    {
        $this->configWriter = $configWriter;
    }

अपनी कॉलिंग विधि में नीचे की पंक्ति जोड़ें:

$this->configWriter->save('my/path/whatever',  $value, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0);

6

आप configInterface वर्ग को इंजेक्ट कर सकते हैं और इसका उपयोग मूल्य बचाने के लिए कर सकते हैं।

protected $_configInterface;

public function __construct(
    \Magento\Framework\App\Config\ConfigResource\ConfigInterface $configInterface
) {
    $this->_configInterface = $configInterface;
}

फिर आप इसे अपने तरीके से उपयोग कर सकते हैं

$this->_configInterface
    ->saveConfig('section/group/field', $value, 'default', 0);

1
इसे छोड़कर ऐसा न करें कि आप सुनिश्चित हैं कि आपके रास्तों को छंटनी की आवश्यकता नहीं है। यह विन्यासकर्ता का उपयोग करने की सिफारिश की गई है
— चुविस्को
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.