Сортировка через mFilter2 (опций тов.) по asc/desc
        Добрый день, помогите пожалуйста решить задачу, пытаюсь сделать сортировку через mFilter2, характеристик (опции minishop2) по asc/desc на лету, но при сортировки через фильтр ругается Could not process query, error #1054: Unknown column 'voltageadapter' in 'order clause', хотя таблица опций джоинится.
Другие поля price, article и.т.д сортирует по возрастанию и убыванию на ура, tvшки так же нормально,
?sort=msoption|price:desc — работает
?sort=msoption|voltageadapter:asc — не работает, такие поля инклюдить не хочет.
Может кто сталкивался с таким вопросом уже?
    
    
                                                                                
            Другие поля price, article и.т.д сортирует по возрастанию и убыванию на ура, tvшки так же нормально,
?sort=msoption|price:desc — работает
?sort=msoption|voltageadapter:asc — не работает, такие поля инклюдить не хочет.
Может кто сталкивался с таким вопросом уже?
Комментарии: 10
                Неужели никто не знает?            
                    
                Я сомневаюсь, что здесь есть телепаты.
Покажи полный вызов mFilter2, глядишь, кто-то и поможет.
                    Покажи полный вызов mFilter2, глядишь, кто-то и поможет.
                Вызываю так
                    [[!mFilter2?
        &limit=`0`
        &showLog=`1`
        &element=`msProducts`
        &parent=`0`
        &filters=`
        ms|price:number
        ,parent:categories
        ,msoption|tags
        ,ms|vendor:vendors
        ,ms|availability:availability
        ,msoption|voltageadapter
        `
        &tpls=`tpl.msProducts.row`
        &class=`msProduct`
        &tplOuter=`tpl.mFilter2.outer`
        &tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
        &tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
        ]]Результат0.0000598: xPDO query object created
0.0002789: leftJoined msProductData as Data
0.0002301: leftJoined msVendor as Vendor
0.0000062: Grouped by msProduct.id
0.0001261: Added selection of msProduct: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `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.0000398: Added selection of msProductData: `article`, `price`, `old_price`, `weight`, `image`, `thumb`, `vendor`, `made_in`, `new`, `popular`, `favorite`, `tags`, `color`, `size`, `source`, `availability`, `rating_item`
0.0000339: Added selection of msVendor: `name` AS `vendor.name`, `resource` AS `vendor.resource`, `country` AS `vendor.country`, `logo` AS `vendor.logo`, `address` AS `vendor.address`, `phone` AS `vendor.phone`, `fax` AS `vendor.fax`, `email` AS `vendor.email`, `description` AS `vendor.description`, `properties` AS `vendor.properties`
0.0000741: Processed additional conditions
0.0004179: Added where condition: class_key=msProduct, msProduct.id:IN(189,193,198,256,257,258,259,260,261,323), msProduct.published=1, msProduct.deleted=0
0.0000951: Sorted by `voltageadapter` desc, 
0.0006618: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`, `Data`.`availability`, `Data`.`rating_item`, `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties` FROM `modx_site_content` AS `msProduct` LEFT JOIN `modx_ms2_products` `Data` ON `msProduct`.`id`=`Data`.`id` LEFT JOIN `modx_ms2_vendors` `Vendor` ON `Data`.`vendor`=`Vendor`.`id` WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`id` IN (189,193,198,256,257,258,259,260,261,323) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 )  GROUP BY msProduct.id ORDER BY `voltageadapter` desc "
0.0049410: Could not process query, error #1054: Unknown column 'voltageadapter' in 'order clause'
0.0081840: Total time
5 767 168: Memory usage
0.0003221: pdoTools loaded.
0.0121579: Getting filters for saved ids: (189,193,198,256,257,258,259,260,261,323)
0.0044332: Filters retrieved.
0.0008869: Suggestions retrieved.
0.0323491: Total filter operations: 20
0.0501812: Total time
5 767 168: Memory usageСтандартная сортировка по полю тому же publishedon работает как нужно<div id="mse2_sort">
    [[%mse2_sort]]
    <a href="#" data-sort="resource|publishedon" data-dir="[[+mse2_sort:is=`resource|publishedon:desc`:then=`desc`]]" data-default="desc" class="sort">[[%mse2_sort_publishedon]]</a>
</div>Пытаюсь выбрать так<div id="mse2_sort">
    [[%mse2_sort]]
    <a href="#" data-sort="msoption|voltageadapter" data-dir="[[+mse2_sort:is=`msoption|voltageadapter:desc`:then=`desc`]]" data-default="desc" class="sort">Вольтаж</a>
</div>Соответственно пишет что нет данных для отображения но тут и логично, не понятно как получить опцию для сортировки на лету.            
                А куда пишутся данные voltageadapter? У тебя ругается, что нет такой колонки, соответственно и нет результата.
Те таблицы что ты джонишь, ни в одной нет такой колонки, а выборку пытаешься сделать по ней.
            
                    Те таблицы что ты джонишь, ни в одной нет такой колонки, а выборку пытаешься сделать по ней.
                Получается так что сами данные записаны в таблице modx_ms2_options — опций самого магазина minishop2, и там уже идут поля, id, key, caption, description, measure_unit, category, type, properties, соответственно где key, сама опция voltageadapter и потом значении самой опции properties, например варианты вольтажа у опции voltageadapter. Не сосем понимаю как правильно запрос организовать через mFilter2, а именно как приджоинить таблицу modx_ms2_options корректно.            
                    
                присоединяюсь к вопросу. Как подключить опции для сортировки, вроде надо использовать &leftJoin но что-то не пойму как оформить запрос для mfilter2. Может кто подскажет)            
                    
                вот такое нагуглил но что-то не проходит
Ошибка где-то что-ли?
            
                    'leftJoin'=>'{
        "data": {
         "class": "msProductOptions",
         "on": "msProduct.id = data.product_id"
        }'вызов ?sort=data|tip:ascОшибка где-то что-ли?
                Вот пример сортировки по опциям товаров в документации к mSearch2:
                    [[!mFilter2?
    &parents=`0`
    &element=`msProducts`
    &leftJoin=`{
        "Option": {
            "class": "msProductOption",
            "on": "Option.key = 'test1' and Option.product_id = msProduct.id"
        }
    }`
    &sortAliases=`{"msoption":"Option"}`
    &sort=`msoption|value:asc`
]]            
                А можно по подробнее, мне непонятен пример. Если мне нужно еще две опции сюда подтянуть, то как будет пример выглядеть? Можете подсказать?            
                    
                Подскажите, а как можно сделать сортировку не через ссылку , а через выпадающий список ?            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.