Экранирование "-" в &where
Всем привет!
У меня такой вопрос
Есть вывод ресурсов
«city:=»:«Санкт–Петербург»
В Санкт-Петербург приходится использовать "–" (среднее тире), если там ставить "-" (минус) то ничего не работает.
Как научить where корректно обрабатывать знак минус?
Заэкранировать его как-то или что?
У меня такой вопрос
Есть вывод ресурсов
[[pdoResources?
&parents=`[[++locations_plans]]`
&tpl=`@INLINE <a href="[[+alias]]">[[+menutitle]]</a>`
&tvPrefix=``
&where=`{"city:=":"Санкт–Петербург","template:=":3}`
&includeTVs=`city`
]]
так вот в &where«city:=»:«Санкт–Петербург»
В Санкт-Петербург приходится использовать "–" (среднее тире), если там ставить "-" (минус) то ничего не работает.
Как научить where корректно обрабатывать знак минус?
Заэкранировать его как-то или что?
Комментарии: 7
Не знаю, поможет или нет, но возможно стоит создать ключ в «Панели администрирования конфигурации» что-то типа
&where=`{"city:=":"[[++тут ключ]]","template:=":3}`
или пробовать с помощью лексикона подтянуть.
К сожелению не помогло
Не ключ, не лексикон
Не ключ, не лексикон
А зачем вы пишите вот так
По существу вопроса. В самой записи ничего криминального нет. Должно работать. Давайте разбираться.
Что значит не работает с дефисом? Не находит ничего или выбрасывает ошибку?
Если ошибку то какую? В Журнале ошибок MODX я имею ввиду.
В объекте по которому ищите у вас Санкт-Петербург как сохранен? С дефисом? С Тире?
"city:=":"Санкт–Петербург"
Правильно будет вот так "city":"Санкт–Петербург"
Если вы ищите точное значение то := писать излишне. Оператор двоеточия нужен в более сложных записях.По существу вопроса. В самой записи ничего криминального нет. Должно работать. Давайте разбираться.
Что значит не работает с дефисом? Не находит ничего или выбрасывает ошибку?
Если ошибку то какую? В Журнале ошибок MODX я имею ввиду.
В объекте по которому ищите у вас Санкт-Петербург как сохранен? С дефисом? С Тире?
// Что значит не работает с дефисом? Не находит ничего или выбрасывает ошибку?
Ничего не находит
// Если ошибку то какую? В Журнале ошибок MODX я имею ввиду.
Ошибок нет, просто ничего не выводит
// В объекте по которому ищите у вас Санкт-Петербург как сохранен? С дефисом? С Тире?
Для экспериментов, в объекте по которому ищу, данные сохранены и с "–" (среднее тире) и с "-" (минус)
И делаю два вывода (тоже для эксперимента) «city»:«Санкт–Петербург» и «city»:«Санкт-Петербург»
Первый выводит то что должен, второй нафиньг ¯\_(ツ)_/¯
Ничего не находит
// Если ошибку то какую? В Журнале ошибок MODX я имею ввиду.
Ошибок нет, просто ничего не выводит
// В объекте по которому ищите у вас Санкт-Петербург как сохранен? С дефисом? С Тире?
Для экспериментов, в объекте по которому ищу, данные сохранены и с "–" (среднее тире) и с "-" (минус)
И делаю два вывода (тоже для эксперимента) «city»:«Санкт–Петербург» и «city»:«Санкт-Петербург»
Первый выводит то что должен, второй нафиньг ¯\_(ツ)_/¯
В showlog какой запрос получается?
Вот такое вижу
0.0000350: PDOTOOLS LOADED
0.0000110: XPDO QUERY OBJECT CREATED
0.0002089: INCLUDED LIST OF TVS: CITY
0.0000999: LEFTJOINED MODTEMPLATEVARRESOURCE AS TVCITY
0.0000741: ADDED SELECTION OF MODRESOURCE: `ID`, `TYPE`, `CONTENTTYPE`, `PAGETITLE`, `LONGTITLE`, `DESCRIPTION`, `ALIAS`, `ALIAS_VISIBLE`, `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`
0.0000041: ADDED SELECTION OF MODTEMPLATEVARRESOURCE: IFNULL(`VALUE`, 'САНКТ-ПЕТЕРБУРГ') AS `CITY`
0.0000050: REPLACED TV CONDITIONS
0.0000119: PROCESSED ADDITIONAL CONDITIONS
0.0001130: ADDED WHERE CONDITION: `TVCITY`.`VALUE`:IN(САНКТ-ПЕТЕРБУРГ), TEMPLATE:IN(3), MODRESOURCE.PARENT:IN(4), MODRESOURCE.PUBLISHED=1, MODRESOURCE.DELETED=0
0.0000021: REPLACED TV CONDITIONS
0.0000331: SORTED BY MODRESOURCE.MENUINDEX, ASC
0.0000010: LIMITED TO 10, OFFSET 0
0.0001111: SQL PREPARED «SELECT `MODRESOURCE`.`ID`, `MODRESOURCE`.`TYPE`, `MODRESOURCE`.`CONTENTTYPE`, `MODRESOURCE`.`PAGETITLE`, `MODRESOURCE`.`LONGTITLE`, `MODRESOURCE`.`DESCRIPTION`, `MODRESOURCE`.`ALIAS`, `MODRESOURCE`.`ALIAS_VISIBLE`, `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(`TVCITY`.`VALUE`, 'САНКТ-ПЕТЕРБУРГ') AS `CITY` FROM `GRU234_SITE_CONTENT` AS `MODRESOURCE` LEFT JOIN `GRU234_SITE_TMPLVAR_CONTENTVALUES` `TVCITY` ON `TVCITY`.`CONTENTID` = `MODRESOURCE`.`ID` AND `TVCITY`.`TMPLVARID` = 33 WHERE ( `TVCITY`.`VALUE` IN ('САНКТ-ПЕТЕРБУРГ') AND `MODRESOURCE`.`TEMPLATE` IN (3) AND `MODRESOURCE`.`PARENT` IN (4) AND `MODRESOURCE`.`PUBLISHED` = 1 AND `MODRESOURCE`.`DELETED` = 0 ) ORDER BY MODRESOURCE.MENUINDEX ASC LIMIT 10 „
0.0004122: SQL EXECUTED
0.0000060: ROWS FETCHED
0.0000072: PREPARED AND PROCESSED TVS
0.0000010: RETURNING PROCESSED CHUNKS
0.0011742: TOTAL TIME
4 194 304: MEMORY USAGE
0.0000350: PDOTOOLS LOADED
0.0000110: XPDO QUERY OBJECT CREATED
0.0002089: INCLUDED LIST OF TVS: CITY
0.0000999: LEFTJOINED MODTEMPLATEVARRESOURCE AS TVCITY
0.0000741: ADDED SELECTION OF MODRESOURCE: `ID`, `TYPE`, `CONTENTTYPE`, `PAGETITLE`, `LONGTITLE`, `DESCRIPTION`, `ALIAS`, `ALIAS_VISIBLE`, `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`
0.0000041: ADDED SELECTION OF MODTEMPLATEVARRESOURCE: IFNULL(`VALUE`, 'САНКТ-ПЕТЕРБУРГ') AS `CITY`
0.0000050: REPLACED TV CONDITIONS
0.0000119: PROCESSED ADDITIONAL CONDITIONS
0.0001130: ADDED WHERE CONDITION: `TVCITY`.`VALUE`:IN(САНКТ-ПЕТЕРБУРГ), TEMPLATE:IN(3), MODRESOURCE.PARENT:IN(4), MODRESOURCE.PUBLISHED=1, MODRESOURCE.DELETED=0
0.0000021: REPLACED TV CONDITIONS
0.0000331: SORTED BY MODRESOURCE.MENUINDEX, ASC
0.0000010: LIMITED TO 10, OFFSET 0
0.0001111: SQL PREPARED «SELECT `MODRESOURCE`.`ID`, `MODRESOURCE`.`TYPE`, `MODRESOURCE`.`CONTENTTYPE`, `MODRESOURCE`.`PAGETITLE`, `MODRESOURCE`.`LONGTITLE`, `MODRESOURCE`.`DESCRIPTION`, `MODRESOURCE`.`ALIAS`, `MODRESOURCE`.`ALIAS_VISIBLE`, `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(`TVCITY`.`VALUE`, 'САНКТ-ПЕТЕРБУРГ') AS `CITY` FROM `GRU234_SITE_CONTENT` AS `MODRESOURCE` LEFT JOIN `GRU234_SITE_TMPLVAR_CONTENTVALUES` `TVCITY` ON `TVCITY`.`CONTENTID` = `MODRESOURCE`.`ID` AND `TVCITY`.`TMPLVARID` = 33 WHERE ( `TVCITY`.`VALUE` IN ('САНКТ-ПЕТЕРБУРГ') AND `MODRESOURCE`.`TEMPLATE` IN (3) AND `MODRESOURCE`.`PARENT` IN (4) AND `MODRESOURCE`.`PUBLISHED` = 1 AND `MODRESOURCE`.`DELETED` = 0 ) ORDER BY MODRESOURCE.MENUINDEX ASC LIMIT 10 „
0.0004122: SQL EXECUTED
0.0000060: ROWS FETCHED
0.0000072: PREPARED AND PROCESSED TVS
0.0000010: RETURNING PROCESSED CHUNKS
0.0011742: TOTAL TIME
4 194 304: MEMORY USAGE
В итоге всё заработало
Скорее всего проблема была в значениях по умолчанию которые подставлялись в это поле
Скорее всего проблема была в значениях по умолчанию которые подставлялись в это поле
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.