pdoResources Fenom Where LIKE
        Нужно вывести все ресурсы, у которых id содержится в доп. поле текущего ресурса. Без where выводятся все ресурсы. С where ничего не выводится.
Вывожу ресурсы через pdoResources на странице ресурса. В шаблоне прописано:
Пробовал:
 
     
    
    
                                                        {'!pdoResources' | snippet : [
                'parents' => 1616,
                'includeTVs' => 'inner-image,color',
                'tplWrapper' => '@FILE chunks/offices_napravleniya_wrapper.tpl',
                'tpl' => '@FILE chunks/offices_napravleniya_item.tpl',
                'sortby' => 'menuindex',
                'sortdir' => 'ASC',
                'where' => "[\"id LIKE '%"~$_modx->resource.officenapravleniya~"%'\"]"
 ]}В БД у данного ресурса TV «officenapravleniya» такое значение 1621||1618||1617||1622Пробовал:
- 'where' => "[\«id LIKE '%»~$_modx->resource.officenapravleniya~"%'\"]"
 - 'where' => '{«id:LIKE»: "%$_modx->resource.officenapravleniya%"}'
 - 'where' => '{«id:LIKE»: "%'~$_modx->resource.officenapravleniya~'%"}'
 - 'where' => 'id==%' ~ $_modx->resource.officenapravleniya~'%'
 
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 14
'where' => [
    'id:LIKE' => '%'~$_modx->resource.officenapravleniya~'%'
]            
                неа...((            
                    
                А что показывает если просто $_modx->resource.officenapravleniya на странице вывести?
                    {set $ids = $_modx->resource.officenapravleniya | split : '||'}
'where' => [
	'id:IN' => $ids
]Можно еще добавить параметр 'showLog' => 1 и посмотреть в чем проблема            
                {$_modx->resource.officenapravleniya} выдаёт 1621161816171622            
                    
                В настройках TV поставьте разделитель запятую например.            
                    
                Там множественный выбор, если ставить запятую вместо || выдаёт только один вариант
                    @EVAL $output = $modx->runSnippet('pdoResources',array('parents'=> '1616', 'tpl'=>'@CODE:[[+pagetitle]]==[[+id]]', 'hideContainers'=>'1', 'outputSeparator'=>'||'));
return '' . $output;            
                Во вкладке Параметры вывода или как-то так называется, там можно указать разделитель.            
                    
                LOG
Added where condition: id:IN(1621161816171622), modResource.parent:IN(1616,1617,1618,1619,1620,1621,1622), modResource.published=1, modResource.deleted=0
                    Added where condition: id:IN(1621161816171622), modResource.parent:IN(1616,1617,1618,1619,1620,1621,1622), modResource.published=1, modResource.deleted=0
                Теперь {$_modx->resource.officenapravleniya} выдаёт 1618,1617,1621? но where не работает            
                    
                а через 
                    {set $ids = $_modx->resource.officenapravleniya | split : '||'}
'where' => [
  'id:IN' => $ids
]только первый ресурс из нужных            
                Сори)) {set $ids = $_modx->resource.officenapravleniya | split: ','} Заработало. Спасибо за помощь.            
                    
                Здравствуйте! Не могли бы вы показать ваш вызов сниппета полностью? Сейчас бьюсь с этой же задачей, не могу добиться вывода ресурсов с множественным выводом.
Спасибо!
                    Спасибо!
                Буду груб. Если Вы используете MODX, то изучите хотя бы базовые понятия работы с MySql. Как может придти в голову запрос поиска по id с LIKE? Я не говорю про тот же FIND_IN_SET. Не все знают про эту функцию. Но надо же знать, что id — это первичный индекс. По нему запрос с равенством и оператором IN отрабатывает мгновенно. А с LIKE Вы заставляете MySql бежать по всем строкам и проверять вхождение. А если строк будет сотни тысяч или миллион? Вроде же не новичок…            
                    
                Можно так:
                    {set $material = $_modx->resource.project_material | split:'||'}
{foreach $material as $item}
    {set $filter[] = 'project_material=='~$item}
{/foreach}
{'!pdoResources' | snippet : [
  'parents' => 7,
  'limit' => 2,
  'tvPrefix' => '',
  'tvFilters' => $filter,
  'showLog' => 0,
  'sortby' => 'RAND()',
  'includeTVs' => 'project_image,project_price,project_area,project_material,project_size,project_bedrooms,project_bathrooms,location',
  'tpl' => '@FILE chunks/projects/project.tpl',
]}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.