/** * Get columns for admin generator instance * * @param string $paramName * @param string $category * @return array $columns */ public function getColumns($paramName, $category = 'NONE') { $columns = parent::getColumns($paramName, $category); // set the foreign key indicator $relations = $this->getTable()->getRelations(); $relationKeys = array(); foreach ($relations as $key => $relation) { $relationKeys[$relation->getLocalFieldName()] = $key; } $cols = $this->getTable()->getColumns(); foreach ($columns as $index => $column) { if (isset($relations[$column->getName()])) { $relationKey = $column->getName(); } elseif (array_key_exists($column->getName(), $relationKeys)) { $relationKey = $relationKeys[$column->getName()]; } else { $relationKey = false; } if ($relationKey) { $fkcolumn = $relations[$relationKey]; $columnName = $relations[$relationKey]->getLocal(); if ($columnName != 'id') { $column->setRelatedClassName($fkcolumn->getTable()->getComponentName()); $column->setColumnName($columnName); // if it is not a many2many if (isset($cols[$columnName])) { $column->setColumnInfo($cols[$columnName]); } $columns[$index] = $column; } } } return $columns; }
public function getColumns($paramName, $category = 'NONE') { $columns = parent::getColumns($paramName, $category); // set the foreign key indicator $relations = $this->getTable()->getRelations(); $cols = $this->getTable()->getColumns(); foreach ($columns as $index => $column) { if (isset($relations[$column->getName()])) { $fkcolumn = $relations[$column->getName()]; $columnName = $relations[$column->getName()]->getLocal(); if ($columnName != 'id') { $column->setRelatedClassName($fkcolumn->getTable()->getComponentName()); $column->setColumnName($columnName); if (isset($cols[$columnName])) { // if it is not a many2many $column->setColumnInfo($cols[$columnName]); } $columns[$index] = $column; } } } return $columns; }