serializer = $serializer; } /** * Prepare field value after load. * * @return \Plumrocket\ExtendedAdminUi\Model\Backend\Config\DynamicTableValue */ public function afterLoad() { $value = $this->getValue() ?? '{}'; $value = $this->serializer->unserialize((string) $value); $value = $this->prepareTableFieldValue($value); $this->setValue($value); return parent::afterLoad(); } /** * Prepare field value before save. * * @return \Plumrocket\ExtendedAdminUi\Model\Backend\Config\DynamicTableValue */ public function beforeSave() { $value = $this->prepareTableFieldValue($this->getValue()); $value = $this->serializer->serialize($value); $this->setValue($value); return parent::beforeSave(); } /** * Prepare the table field value, it must be an array type * * @param array|string $value * @return array */ protected function prepareTableFieldValue($value): array { if (empty($value) && ! is_array($value)) { $value = []; } return $value; } }