Ejemplo n.º 1
0
 /**
  * Returns [['entityClass' => $entityClass, 'idAlias' => $entityIdAlias], ...] for all configured tags columns.
  *
  * @param DatagridConfiguration $config
  *
  * @return array
  */
 protected function getTagColumnDefinitions(DatagridConfiguration $config)
 {
     $aliases = $config->offsetGetByPath(self::GRID_COLUMN_ALIAS_PATH);
     $tagColumns = [];
     if (null === $aliases) {
         return $tagColumns;
     }
     $joinIdentifierHelper = $this->getJoinIdentifierHelper();
     foreach ($aliases as $key => $alias) {
         $field = $joinIdentifierHelper->getFieldName($key);
         if ($field === TagVirtualFieldProvider::TAG_FIELD) {
             // get entity class from relations aliases if tag_field configured for relations
             $entityClassName = $joinIdentifierHelper->getEntityClassName($key) ?: parent::getEntity($config);
             $tagColumns[] = ['idAlias' => $alias, 'entityClass' => $entityClassName];
         }
     }
     return $tagColumns;
 }