Не работают фильтр на базе pdoResources

Доброго времени суток!

Обнаружил проблему с pdoNeighbors.

Моя задача:
вывести соседей(слева и справа) текущей записи, но с доп условием этот сосед должен иметь тег такой же как у текущего документа.

Наглядно покажу вызов снипета:

[!pdoNeighbors?
                    &includeTVs=`portfolio2.image-preview,portfolio.tags`
                    &processTVs=`1`
                    &tvFilters=`portfolio.tags==%test%`
                    &showLog=`1`
                  ]]
И лог:

0.0000441: xPDO query object created
0.0000520: Added TVs filters
0.0003960: Included list of tvs: portfolio.tags, portfolio2.image-preview
0.0002551: leftJoined modTemplateVarResource as TVportfolio.tags
0.0002170: leftJoined modTemplateVarResource as TVportfolio2.image-preview
0.0004671: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000138: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.portfolio.tags`
0.0000110: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.portfolio2.image-preview`
0.0000899: Replaced TV conditions
0.0000319: Processed additional conditions
0.0004141: Added where condition: 0=, 1=3, 0=`TVportfolio.tags`.`value` LIKE '%bar%', modResource.published=1, modResource.deleted=0
0.0000291: Replaced TV conditions
0.0001228: Sorted by modResource.menuindex, asc
0.0004029: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVportfolio.tags`.`value`, '') AS `tv.portfolio.tags`, IFNULL(`TVportfolio2.image-preview`.`value`, '') AS `tv.portfolio2.image-preview` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVportfolio.tags` ON `TVportfolio.tags`.`contentid` = `modResource`.`id` AND `TVportfolio.tags`.`tmplvarid` = 143 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVportfolio2.image-preview` ON `TVportfolio2.image-preview`.`contentid` = `modResource`.`id` AND `TVportfolio2.image-preview`.`tmplvarid` = 130 WHERE  ( `modResource`.`id` IN (,3) AND `TVportfolio.tags`.`value` LIKE '%test%' AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.menuindex asc "
0.0006001: Could not process query, error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '3) AND `TVportfolio.tags`.`value` LIKE '%bar%' AND `modResource`.`published` = 1' at line 1
0.0004108: Chunks processed
Как видно проблема в построении запроса, а именно

`modResource`.`id` IN (,3)
вызывает ошибку. Очень странно, так как я даже не лез в where и по сути проблем быть не должно.

Кто-то из сообщества знает в чем проблема? Это баг в самом снипете?
Max Grim
18 декабря 2016, 19:03
modx.pro
1 026
0

Комментарии: 1

Max Grim
18 декабря 2016, 22:10
0
Нашел в чем проблему, если &tvFilters=`portfolio.tags==%test` имеет такие данные которые позволяют хоть что-то найти то все ок, но как только нету что выводить оно не работает
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1