/** * {@inheritDoc} */ public function processConfigs(DatagridConfiguration $config) { $actionConfiguration = $config->offsetGetOr(static::ACTION_CONFIGURATION_KEY); if ($actionConfiguration && is_callable($actionConfiguration)) { $callable = function (ResultRecordInterface $record) use($actionConfiguration) { $result = call_user_func($actionConfiguration, $record); return is_array($result) ? $result : []; }; $propertyConfig = ['type' => 'callback', 'callable' => $callable, PropertyInterface::FRONTEND_TYPE_KEY => 'array']; $config->offsetAddToArrayByPath(sprintf('[%s][%s]', Configuration::PROPERTIES_KEY, static::METADATA_ACTION_CONFIGURATION_KEY), $propertyConfig); } }