在我的自定义扩展中,我有一个记录要求,可以说哪些是保存在表名tx_myextension_domain_model_projects
中的项目,哪些是使用自定义类别表tx_myextension_domain_model_categories
进行归类的关系在模型中为m:n,并保存在mm表tx_myextension_category_record_mm
中。
这是类别字段的TCA映射:
products_category' => [
'exclude' => true,
'label' => 'Category Label',
'config' => [
'type' => 'select',
'renderType' => 'selectTree',
'foreign_table' => 'tx_myextension_domain_model_categories',
'foreign_table_where' => 'ORDER BY tx_myextension_domain_model_categories.sorting',
'MM' => 'tx_myextension_category_record_mm',
'MM_match_fields' => [
'tablenames' => 'tx_myextension_domain_model_projects',
],
'MM_opposite_field' => 'items',
'size' => 20,
'treeConfig' => [
'parentField' => 'parent',
'appearance' => [
'showHeader' => true,
'expandAll' => true,
'maxLevels' => 99,
],
],
],
],
因此,在我的一个用例中,我需要获得按禁用和活动类别分类的项目。
例如,这是类别:
categories = [
A => [
A1 => [
A1.2
]
A2 => [
A2.2
]
],
B => [
B1 => [
B1.2
]
],
];
可以说A1
被禁用/隐藏了,我想获取分配给A1
及其子A1.2
的项目。是否有可能使用TYPO3存储库查询来获取项目记录。
注意:我无法使用$querySettings->setIgnoreEnableFields(true);
禁用启用字段,因为我不想在整个类别的存储库中都禁用它,而且还需要从查询项目记录时的项目存储库。希望我的问题清楚。请让我知道解决方案。
解决方案当前我选择:我使用TYPO3连接池查询代替存储库查询。
答案 0 :(得分:1)
为什么不是$ query-> getQuerySettings()-> setIgnoreEnableFields(true);给你一个选择?您可以像使用连接池那样完全按照所需的方式构建查询。