Выборка &where: не срабатывает &parents

Здравствуйте. Прошу направить на путь истинный, уже всю голову сломал.
Есть вызов который должен выбрать из контейнера (id 36) ресурсы с тегом «тег 1», «тег 2»
[[!pdoResources? 
&parents=`36`
&showLog=`1` 
&depth=`1` 
&tpl=`@INLINE <a  target="_blank" title="[[+longtitle]]" href="[[++site_url]][[+uri]]">[[+tv.tags]]</a>`
&scheme=`full`
&cache=`1` 
&cacheTime=`86400` 
&includeTVs=`tags` 
&limit=`6` 
&hideContainers=`1`
&where=`{"tags:LIKE":"тег 1","OR:tags:LIKE":"тег 2"}`
]]


У контейнера (36) всего три дочерних ресурса (id: 37,38,39)
Почему происходит выборка из других контейнеров, как будто &parents=`0`, а не &parents=`36`

Вот лог
<pre class="pdoResourcesLog">0.0001121: pdoTools loaded
0.0000219: xPDO query object created
0.0003200: Included list of tvs: <b>tags</b>
0.0001550: leftJoined <i>modTemplateVarResource</i> as <b>TVtags</b>
0.0002320: Added selection of <b>modResource</b>: <small>SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `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`</small>
0.0000060: Added selection of <b>modTemplateVarResource</b>: <small>IFNULL(`value`, '') AS `tv.tags`</small>
0.0000391: Replaced TV conditions
0.0004139: Processed additional conditions
0.0006540: Added where condition: <b>`TVtags`.`value`:LIKE=тег 1, OR:`TVtags`.`value`:LIKE=тег 2, modResource.parent:IN(36,37,38,39), modResource.published=1, modResource.deleted=0, modResource.isfolder=0</b>
0.0000181: Replaced TV conditions
0.0000741: Sorted by <b>modResource.publishedon</b>, <b>DESC</b>
0.0000019: Limited to <b>6</b>, offset <b>0</b>
0.0008800: SQL prepared <small>"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`.`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(`TVtags`.`value`, '') AS `tv.tags` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVtags` ON `TVtags`.`contentid` = `modResource`.`id` AND `TVtags`.`tmplvarid` = 7 WHERE  ( `TVtags`.`value` LIKE 'тег 1' OR `TVtags`.`value` LIKE 'тег 2' AND `modResource`.`parent` IN (36,37,38,39) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 )  ORDER BY modResource.publishedon DESC LIMIT 6 "</small>
0.0002890: SQL executed
0.0003798: Total rows: <b>3</b>
0.0000210: Rows fetched
0.0011101: Prepared and processed TVs
0.0002019: Created inline chunk with name "97dd77a3e1ef6df416c421c495220dc5"
0.0006890: Returning processed chunks
0.0050640: <b>Total time</b>
14 942 208: <b>Memory usage</b>
</pre>
Борис И
24 апреля 2016, 05:48
modx.pro
1 991
0

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

Сергей Шлоков
24 апреля 2016, 09:47
+1
$depth=`0`
Это раз. И два — нужно делать группировку для OR. Смотри какое where ограничение получается.
    Борис И
    24 апреля 2016, 10:23
    0
    Спасибо, depth поменял, заработало так
    &where=`[{"tags:LIKE":"тег 1","OR:tags:LIKE":"тег 2"}]`
    лог (до скобок [])
    Added where condition: `TVtags`.`value`:LIKE=тег 1, OR:`TVtags`.`value`:LIKE=тег 2, modResource.parent:IN(36), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
    лог ( после скобок [])
    Added where condition: `TVtags`.`value`:LIKE=тег 1, OR:`TVtags`.`value`:LIKE=тег 2, modResource.parent:IN(36), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
    Единственное добавилась еще одна строка (их стало 2)
    Replaced TV conditions
    В осальном в логах я не нашел различий, а вывод изменился, магия да и только
      Василий Наумкин
      24 апреля 2016, 11:19
      +1
      Ты сравнивай строку SQL prepared
        Борис И
        24 апреля 2016, 11:29
        0
        Магия исчезла.
        было
        WHERE  ( `TVtags`.`value` LIKE 'тег 1' OR `TVtags`.`value` LIKE 'тег 2' AND `modResource`.`parent` IN (36)
        стало
        WHERE  (  ( `TVtags`.`value` LIKE 'тег 1' OR `TVtags`.`value` LIKE 'тег 2' )  AND `modResource`.`parent` IN (36)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4