Hey @Shyim,
ich habe versucht es etwas generischer zu gestalten, damit man das vielleicht wiederverwenden kann:
public function install(InstallContext $context): void
{
parent::install($context);
$this->setDefaultConfigValue(
'MeinPlugin.config.myField',
Uuid::randomHex(),
true
);
}
private function setDefaultConfigValue($key, $value, $renew = false): void
{
$data = [
'configurationKey' => $key,
'configurationValue' => $value
];
$defaultContext = Context::createDefaultContext();
/** @var EntityRepository $repository */
$repository = $this->container->get('system_config.repository');
$criteria = new Criteria();
$criteria->addFilter(
new EqualsFilter('configurationKey', $key)
);
$config = $repository->search($criteria, $defaultContext);
if ($config->getTotal() === 0) {
$repository->create([$data], $defaultContext);
return;
}
if ($config->getTotal() > 0 && $renew === true) {
$data['id'] = $config->first()->getId();
$repository->update([$data], $defaultContext);
}
}