/** * Returns grid metadata array * * @param DatagridInterface $grid * @param array $params * @return array */ public function getGridMetadata(DatagridInterface $grid, array $params = []) { $metaData = $grid->getMetadata(); $params = array_merge($metaData->offsetGetByPath('[options][urlParams]') ?: [], $params); $metaData->offsetAddToArray('options', ['url' => $this->generateUrl($grid, $params), 'urlParams' => $params]); return $metaData->toArray(); }
/** * @param DatagridInterface $dataGrid * @return string */ protected function generateStateHash(DatagridInterface $dataGrid) { $state = $dataGrid->getMetadata()->offsetGetByPath('[state]'); $data = ['filters' => !empty($state['filters']) ? $state['filters'] : [], 'sorters' => !empty($state['sorters']) ? $state['sorters'] : []]; return md5(json_encode($data)); }