を使用することもできます\Magento\Config\Model\Config::save
。簡単なサンプルの下:
$configData = [
'section' => 'MY_SECTION',
'website' => null,
'store' => null,
'groups' => [
'MY_GROUP' => [
'fields' => [
'MY_FIELD' => [
'value' => $myValue,
],
],
],
],
];
// $this->configFactory --> \Magento\Config\Model\Config\Factory
/** @var \Magento\Config\Model\Config $configModel */
$configModel = $this->configFactory->create(['data' => $configData]);
$configModel->save();
この構文は「単純」ではありませんが、場合によってはより安全です。保存ロジックとは異なり、アクションはdbへの直接アクセスよりも遅い場合があります。
私の場合、$value
暗号化する必要があります。ではsystem.xml
、フィールドのバックエンドモデルを設定し、保存ロジックがデータを暗号化します。
編集:\Magento\Config\Model\Config::setDataByPath
より使いやすい
@api
マークされた回答が一番上に表示されるかどうかを確認します。