프로그래밍 방식으로 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
패스를 다듬을 필요가없는 경우를 제외하고는이 작업을 수행하지 마십시오.
Chuvisco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.