Error when trying to display categories through a backend module
When trying to render objects with categories in a backend module, TYPO3 v9 (9.5.0 to be exact) throws this error:
An exception occurred while executing 'SELECT `uid_local`, `uid_foreign`, `tablenames`, `fieldname`, `sorting`, `sorting_foreign`, `uid`, `pid`, `tstamp`, `crdate`, `cruser_id`, `deleted`, `hidden`, `starttime`, `endtime`, `t3ver_oid`, `t3ver_id`, `t3ver_wsid`, `t3ver_label`, `t3ver_state`, `t3ver_stage`, `t3ver_count`, `t3ver_tstamp`, `t3ver_move_id`, `t3_origuid`, `sys_language_uid`, `l10n_parent`, `l10n_diffsource`, `title`, `description`, `parent`, `items`, `l10n_state`, `fe_group`, `images`, `single_pid`, `shortcut`, `import_id`, `import_source`, `seo_title`, `seo_description`, `seo_headline`, `seo_text`, `content` FROM `sys_category` WHERE (`pid` = ?) AND (`t3ver_oid` = ?) AND (`t3ver_wsid` = ?) AND (`sys_category`.`deleted` = 0) LIMIT 1' with params [-1, 95, -99]: Unknown column 'uid_local' in 'field list'
I made a small extension to showcase/reproduce this error and we've tested this on multiple instances: https://github.com/atomicptr/categories_error (Note the readme)
This could possibly be my fault for using something wrong that has potentially changed, but I was unable to find any cause for this.
#1 Updated by Georg Ringer 10 months ago
- Category changed from Categorization API to Extbase
just some more hints. Debugging
Typo3DbBackend shows that in
getObjectDataByQuery there is a select for the categories but $selectParts is
Array (  => `sys_category_record_mm`.*  => `sys_category`.* )
so this will join the sys_category record with the mm table and this leads to a $row as result which is can't be overlayed later.
#5 Updated by Tymoteusz Motylewski 10 months ago
- Status changed from Accepted to Needs Feedback
I couldn't reproduce the issue.
I have current master debf38e8d5a89fc69ed05ce4ba0badcaeab000a9, cloned the repo and created 3 records
1) with one category
2) with multiple categories
3) with no category attached
The list is rendered correctly.