DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
->mapping¶
Contains mapping of tablename and fields in a table. Notice that entering any configuration for a table might affect performance since translation is needed before results are returned or queries executed.
Mapping is totally transparent for applications inside TYPO3 and mapping is independent of handler type - the translation goes on between these two spheres.
Mapping can work as a work-around for reserved field- or table names.
mapTableName¶
Key
mapTableName
Datatype
string
Description
Real, physical tablename for the table
mapFieldNames[fieldname]¶
Key
mapFieldNames[fieldname]
Datatype
string
Description
Real, physical fieldname in the table.
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['mapping'] = array(
'sys_note' => array(
'mapTableName' => 'SysNoteTable',
'mapFieldNames' => array(
'uid' => 'uid999',
'pid' => 'pid999',
'deleted' => 'deleted999',
'tstamp' => 'tstamp999',
'crdate' => 'crdate999',
'cruser' => 'cruser999',
'author' => 'author999',
'email' => 'email999',
'subject' => 'subject999',
'message' => 'message999',
'personal' => 'personal999',
'category' => 'category999'
)
),
'_tt_content' => array(
'mapTableName' => 'tt_content999',
'mapFieldNames' => array(
'bodytext' => 'bodytext999',
'header' => 'header999',
'image' => 'image999',
'pid' => 'pid999',
'sorting' => 'sorting999',
)
)
);
|
In this example two classic TYPO3 tables have been mapped; the
sys_note
table (from the sys_note
extension) and the
tt_content
table (Content Elements).
According to this mapping example the sys_note
table in the database
(or whatever data source) is actually named SysNoteTable
and all
fields are actually named differently; with "...999" after (this is
just an example).
When you try to make a look up in the sys_note
like
SELECT uid FROM sys_note WHERE uid=123
then this is transformed into
SELECT uid999 FROM SysNoteTable WHERE uid999=123
before executed. And the result row which will be array('uid999' => 123)
will be transformed back to
array('uid' => 123)
before you receive it inside of TYPO3.
Warning
Mapping tables to two different databases on localhost
will most likely only work if [SYS][no_pconnect]
is set in
$TYPO3_CONF_VARS
. Otherwise PHP will, regardless of DBAL maintaining
different links for the databases, use the wrong one.