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!