Снова where и множественный выбор
        Здравствуйте!
Логика должна быть следующая: у текущего ресурса, где запускается выборка есть TV option (например имя1==1) с одним значением. У выбираемых ресурсов есть TV rubrika со списком множественного выбора (там несколько значений вида имя1==1||имя2==2||имя3==3). Выбираться должны только ресурсы имеющие в своем множественном списке совпадение с текущим значением TV ресурса где запускается выборка.
Вот так не работает:
    
    
                                                                                
            Логика должна быть следующая: у текущего ресурса, где запускается выборка есть TV option (например имя1==1) с одним значением. У выбираемых ресурсов есть TV rubrika со списком множественного выбора (там несколько значений вида имя1==1||имя2==2||имя3==3). Выбираться должны только ресурсы имеющие в своем множественном списке совпадение с текущим значением TV ресурса где запускается выборка.
Вот так не работает:
[[!pdoPage?
        &parents=`4`
        &includeTVs=`rubrika`
        &where=`{"[[*option]]:IN":rubrika}`
        &tpl=`RowTpl`
]]Подскажите, пожалуйста, как решить данную задачку.    Комментарии: 8
                Вот тут вообще не понятно, что вы делаете:
Добавьте &showLog=`1` и посмотрите, свой запрос.
                    {"[[*option]]:IN":rubrika}Через IN тут не решить вопрос. Нужно через LIKE ()Добавьте &showLog=`1` и посмотрите, свой запрос.
                Нужно чтобы хотя бы одно из множества значений TV выбираемых ресурсов совпало со значением TV текущего ресурса            
                    
                А TV текущего ресурса как называется?            
                    
                TV текущего ресурса — option
TV выбираемых ресурсов с множественными значениями — rubrika
                    TV выбираемых ресурсов с множественными значениями — rubrika
                Может так
                    [[!pdoPage?
        &parents=`4`
        &includeTVs=`rubrika`
        &where=`{"rubrika:LIKE":"%[[*option]]%"}`
        &tpl=`RowTpl`
]]если значения rubrika меньше 10 должно ловить. Если больше 10, то на option=1 словит и 1 и 10 и 11 и т.д.            
                Спасибо большое!
Да такой подход действительно работает! Мне подошел этот вариант (как раз сейчас 9 элементов).
Но есть ли более универсальный вариант, где более 10 вариантов?
                    Да такой подход действительно работает! Мне подошел этот вариант (как раз сейчас 9 элементов).
Но есть ли более универсальный вариант, где более 10 вариантов?
                Ну тогда надо архитектуру как-то менять. 
TV rubrika со списком множественного выбора (там несколько значений вида имя1==1||имя2==2||имя3==3) храниться в базе как текст например такой «1||3||13». И ни как запросом LIKE не отличишь 1 от 13.
Нужно список множественного выбора хранить как отдельные значения в таблице. Например tvsuperselect храниться в 2 таблицах и как текст «1||3||13» и в отдельной таблице отдельные значения. Я не помню как именно.
Если использовать tvsuperselect, то, наверно, можно в pdoPage подцепить 2-ю таблицу и написать что-то вроде
                    TV rubrika со списком множественного выбора (там несколько значений вида имя1==1||имя2==2||имя3==3) храниться в базе как текст например такой «1||3||13». И ни как запросом LIKE не отличишь 1 от 13.
Нужно список множественного выбора хранить как отдельные значения в таблице. Например tvsuperselect храниться в 2 таблицах и как текст «1||3||13» и в отдельной таблице отдельные значения. Я не помню как именно.
Если использовать tvsuperselect, то, наверно, можно в pdoPage подцепить 2-ю таблицу и написать что-то вроде
[[!pdoPage?
        &parents=`4`
        &loadModels=`tvsuperselect`
        &leftJoin=`{"2-таблица":....}`
        &groupby=`modResource.id`
        &where=`{"2-таблица.value":[[*option]]}`
        &tpl=`RowTpl`
]]            
                Посмотрите это решение:
modx.pro/solutions/23005
                    modx.pro/solutions/23005
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.