помогите сделать выборку
Здравствуйте, помогите, пожалуйста, разобраться:
Нужно вывести на странице последние работы (портфолио) через pdoresources, у которых одно из TV (множественный список, массив чисел через запятую) содержит ID этой страницы на которой они выводятся.
То есть у страницы если id 18, то выводить те ресурсы портфолио, у которых в tv portfolio_type есть в массиве 18
Зашел в тупик:
Нужно вывести на странице последние работы (портфолио) через pdoresources, у которых одно из TV (множественный список, массив чисел через запятую) содержит ID этой страницы на которой они выводятся.
То есть у страницы если id 18, то выводить те ресурсы портфолио, у которых в tv portfolio_type есть в массиве 18
Зашел в тупик:
{'pdoResources' | snippet : [
'limit' => 4,
'parents' => 24,
'depth' => 1,
'sortby' => 'RAND()',
'includeTVs' => 'portfolio_type',
'sortdir' => 'ASC',
'tpl' => 'tpl.lastwork_item',
'where' => [ '$_modx->resource.id:in' => [$portfolio_type] ],
]}
Спасибо! Комментарии: 8
Скорее всего вам это должно помочь:
modx.pro/solutions/23005
modx.pro/solutions/23005
спасибо, конкретно ваш метод не пригодился, но подсказку нашел как сделать:
Вот так сработало:
Вот так сработало:
{set $ptypes = $_modx->resource.id}
{'pdoResources' | snippet : [
'limit' => 4,
'parents' => 24,
'depth' => 1,
'sortby' => 'RAND()',
'includeTVs' => 'portfolio_type',
'sortdir' => 'ASC',
'tpl' => 'tpl.lastwork_item',
'where'=> ["portfolio_type:RLIKE" => $ptypes]
]}
Кривое решение. ID = 14, а portfolio_type 13||144||1440
да, кривое, подскажите как сделать несколько условий типа LIKE здесь?
Те вы не дочитал до конца? Странно, что отвергаете решение которое для вас подойдёт, судя по тому что вы пишите. Просто удивлен.
я дочитал, но не смог применить вашу сложную конструкцию к своей задаче
{set $ptypes = $_modx->resource.id}
{'pdoResources' | snippet : [
'limit' => 4,
'parents' => 24,
'depth' => 1,
'sortby' => 'RAND()',
'includeTVs' => 'portfolio_type',
'sortdir' => 'ASC',
'tpl' => 'tpl.lastwork_item',
'where' => [ ["portfolio_type:LIKE" => "%|"~$ptypes, "OR:portfolio_type:LIKE" => $ptypes~"|%","OR:portfolio_type:LIKE" => "%|"~$ptypes~"|%","OR:portfolio_type:=" => $ptypes ]]
]}
Это решение конечно красивое, но что-то не получается обработать его. Может, кто-то и сможет реализовать.WHERE FIND_IN_SET($ptypes, replace("TVportfolio_type`.`value", "||", ","))
Спасибо, у меня получилось именно это решение
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.