/** * Zwraca tablicę metadata do konfiguracji grida. * UWAGA! To nie jest Metadata z Doctrina */ public function createMetadata() { $fields = $this->initializeFields(); $this->metadata = new Metadata($this); $fieldsNames = array(); $fieldsMappings = array(); foreach ($fields as $field) { // var_dump($field); if ($field["isAssociation"] === true) { if ($this->hasAssociatedObjectField($field['fieldName'], "name")) { $fieldName = $field['fieldName'] . ".name"; $fieldsNames[] = $fieldName; $type = 'text'; if ($field['mapping']['type'] == ClassMetadata::MANY_TO_MANY) { $this->groupById = true; } $fieldsMappings[$fieldName] = array("title" => $fieldName, "source" => true, "field" => $fieldName, "id" => $fieldName, "type" => $type, 'associated' => true); } } else { $fieldName = $field['fieldName']; $fieldsNames[] = $field['fieldName']; // echo $fieldName." = ".$field['mapping']['type']."\n"; $fieldMapping = array("title" => $fieldName, "source" => true, "field" => $fieldName, "id" => $fieldName, "type" => $this->types[$field['mapping']['type']], 'associated' => false); if ($fieldName == 'id') { $fieldMapping["primary"] = true; } $fieldsMappings[$fieldName] = $fieldMapping; } } $this->metadata->setFields($fieldsNames); $this->metadata->setFieldsMappings($fieldsMappings); $this->metadata->setGroupBy(array()); return $this->metadata; }
/** * @param \APY\DataGridBundle\Grid\Columns $columns * @return null */ public function getColumns($columns) { foreach ($this->metadata->getColumnsFromMapping($columns) as $column) { $columns->addColumn($column); } }