msProducts и общий параметр return
Здравствуйте!
Почему то не отрабатывает общий параметр pdoTools return
в доках msProducts
Почему то не отрабатывает общий параметр pdoTools return
в доках msProducts
Можно использовать и другие общие параметры pdoToolsв доках pdoTools параметр return
pdoTools умеет возвращать данные в разном виде, в зависимости от параметр &return. В основном это используют сами сниппеты для внутренних нужд, но вы можете указывать &return в pdoResources:вызов обычный. Без return отрабатывает нормально, выводит как надо.
chunks — оформленные чанки, по умолчанию.
sql — подготовленный сырой SQL, полезно для отладки. Сам запрос не выполняется, только выводится на экран.
data — готовый массив данных. Из-за особенностей работы сниппетов MODX этот вариант имеет смысл использовать только при вызове pdoFetch::run() напрямую из своего сниппета, в противном случае вы получите только строку «Array».
ids — возвращает только идентификаторы документов, через запятую. Удобно для подстановки в качестве параметра другим сниппетам. Параметр &returnIds использует именно этот тип.
json — возврат массива данных JSON строкой.
serialize — возврат массива данных сериализованной строкой. Иногда, по непонятным причинам, может вызвать нехватку памяти. Лучше использовать json.
{set $products = '!msProducts' | snippet : [
'return' => 'data'
'parents' => $_modx->resource.id
'tpl' => 'filter_option'
'limit' => 0
'depth' => 0
'sortby' => 'menuindex'
]}
Комментарии: 5
У меня тоже не отрабатывает.
В снииппете написано
В снииппете написано
'return' => !empty($returnIds)
? 'ids'
: 'data',
Что как бы намекает, на то что return в msProducts есть, но он принимает два значения (в отличии от pdoTools). Либо ids, либо data, но если ввести data — выведется обработанный чанк. В тоже время, в документации написано Из-за особенностей работы сниппетов MODX этот вариант имеет смысл использовать только при вызове pdoFetch::run() напрямую из своего сниппета, в противном случае вы получите только строку «Array».Что так же намекает, на то, что если вам требуется посмотреть на массив значений то можно вывести пустой tpl, а для взаимодействия использовать pdo. Еще как вариант, вызовите pdoResources, через выборку продукты и уже там сделаете return.
Вот пришлось что типа такого сделать:
Еще как вариант, вызовите pdoResources, через выборку продукты и уже там сделаете return.Спасибо за ответ
На моей памяти этот параметр никогда нормально не работал в pdoTools и основанных на нем сниппетах.
В некоторых работает return=json, но, например, в pdoMenu не работает, сразу результат выводится.
return=data должен возвращать массив, в сниппетах выводится просто слово Array. Даже, если запускать в php.
В некоторых работает return=json, но, например, в pdoMenu не работает, сразу результат выводится.
return=data должен возвращать массив, в сниппетах выводится просто слово Array. Даже, если запускать в php.
в новых версиях pdoTools все работает
Сейчас возвращает строку c data, что с ней делать пока не понятно
string(50031) "Array ( [id] => 51 [type] => document [contentType].....
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.