pdoTools: параметр where
Здравствуйте!
Появилась задача вывести при помощи сниппета pdoMenu ссылки на ресурсы двух родителей плюс ссылки на некоторые ресурсы не имеющие отношение к этим родителям. Для реализации этого использую параметр where:
Или так:
Подскажите пожалуйста как правильно писать такие значения в этот параметр и вообще как лучше всего решить эту задачу?
Всем заранее большое спасибо!
РЕШЕНИЕ:
В ситуациях когда много AND и OR условий лучше помещать в параметр &where просто часть SQL-запроса относящуюся к WHERE:
Появилась задача вывести при помощи сниппета pdoMenu ссылки на ресурсы двух родителей плюс ссылки на некоторые ресурсы не имеющие отношение к этим родителям. Для реализации этого использую параметр where:
&where=`{"parent":26,"OR:parent":29,"OR:id":31,"OR:id":33}`
Или так:
&where=`[{"parent":26,"OR:parent":29,"OR:id":31,"OR:id":33}]`
Результат нулевой.Подскажите пожалуйста как правильно писать такие значения в этот параметр и вообще как лучше всего решить эту задачу?
Всем заранее большое спасибо!
РЕШЕНИЕ:
В ситуациях когда много AND и OR условий лучше помещать в параметр &where просто часть SQL-запроса относящуюся к WHERE:
&where=`["SQL-запрос"]`
Дело в том что если у нас условие типа такого:&where=`{
"parent":5,
"OR:parent:=":36,
"OR:id:=":29,
"OR:id:=":8
}`
То условия с ID представляют собой элементы JSON-массива с одинаковыми ключами и соответственно последующие элементы перезаписывают предыдущие. В результате в запрос попадет лишь последнее условие. Комментарии: 6
&where=`{"parent:=":26,"OR:parent:=":29,"OR:id:=":31,"OR:id:=":33}`
А почему здесь нужно именно сочетание :=?
Что оно означает?
Что оно означает?
это значит «равно» :)
А почему для простых условий типа как это:
&where=`{"parent":26}`
достаточно только двоеточия?
Подставил сейчас это значение: в результате отобразились все нужные пункты кроме ресурса с ID 31.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.