[TYPO3-mvc] Is some sort of single table inheritance or a similar solution available?
Jochen Rau
jochen.rau at typoplanet.de
Fri Apr 9 10:40:24 CEST 2010
Hi Thomas.
On 09.04.10 01:26, Thomas "Thasmo" Deinhamer wrote:
> I'd like to extend my extbase extension with several types
> of products, which can be selected by a type field in the backend.
>
> Extbase then should load the according model class.
>
> For example the product types could be books, furniture,
> CDs, food etc. and I want to use a specific model object
> in the frontend/controllers etc.
>
> Exists there a proposed solution for this or any idea
> how to implement this? Should this have been discussed
> at the T3BOARD10?
We discussed this feature on T3BOARD10.
http://forge.typo3.org/issues/show/5883
The implementation is nearly finished but not yet committed to the svn
repository (only local git). Extbase 1.1.0 took precedence.
The basic idea is the following: If a table holda data of different
types it has to have an extra field. By default, extbase assumes this
field to be named "tx_extbase_type". This can be overwritten by the
"type" in the ctrl section of the TCA (in case of tt_content this is
"CType"). By default the value of this field is the class name of the
target type. In case of "CType" there must be a mapping defined for each
type, like:
config.tx_extbase {
persistence{
classes {
Tx_Voila_Domain_Model_Content_Text {
mapping {
tableName = tt_content
recordType = text
}
}
Tx_Voila_Domain_Model_Content_BulletList {
mapping {
tableName = tt_content
recordType = bullets
}
}
}
}
}
A call to $textRepository->findAll() will return only Objects of class
Tx_Voila_Domain_Model_Content_Text. The problem is now: How to query for
all content elements? There is no $contentRepository->findAll().
Regards
Jochen
More information about the TYPO3-project-typo3v4mvc
mailing list