Db::getColumns()
\nn\t3::Db()->getColumns($table = '', $useSchemaManager = false);
Get all table columns (TCA) for specific table
// Get fields based on the TCA array
\nn\t3::Db()->getColumns( 'tablename' );
// Determine fields via the SchemaManager
\nn\t3::Db()->getColumns( 'tablename', true );
Copied!
@param string $table
@param boolean $useSchemaManager
@return array
Source Code
public function getColumns ( $table = '', $useSchemaManager = false )
{
$cols = isset($GLOBALS['TCA'][$table]) ? $GLOBALS['TCA'][$table]['columns'] : [];
// Diese Felder sind nicht ausdrücklich im TCA, aber für Abfrage legitim
if ($cols) {
$cols = \nn\t3::Arrays( $cols )->merge(['uid'=>'uid', 'pid'=>'pid', 'tstamp'=>'tstamp', 'crdate'=>'crdate', 'endtime'=>'endtime', 'starttime'=>'starttime', 'deleted'=>'deleted', 'disable'=>'disable']);
}
// Keine cols ermittelt, weil nicht im TCA registriert – oder Abfrage erzwungen
if (!$cols || $useSchemaManager) {
$cols = GeneralUtility::makeInstance(ConnectionPool::class)
->getConnectionForTable($table)
->createSchemaManager()
->listTableColumns($table);
}
foreach ($cols as $k=>$v) {
$cols[GeneralUtility::underscoredToLowerCamelCase($k)] = $v;
}
return $cols;
}
Copied!