Отвечу, рассчитывая на комментарий Николая, если я неправильно что-то пониманию. Если нужно именно вывести данные, пусть и с обработкой перед выводом, то выгоднее не использовать getCollection, а выбрать через fetchAll(PDO::FETCH_ASSOC), чтобы не создавать объекты. Конечная цель — массив с выбранными документами. TV можно выбрать вторым запросом, используя уже полученный массив, к нему же и присоединить результаты. Дальше уже в цикле обрабатываем и выводим.
я бы в данном случае migx использовал бы, так как все TV вроде однотипные, то по-моему проще из 22 одно, хоть и с JSON массивом сделать. Да и запрос лучше с JOIN-ом писать т.к. 1 запрос пусть и громоздкий лучше чем 1000. <?php $query = $modx->newQuery('modTemplateVarResource'); $query->innerJoin('modResource','modResource','modTemplateVarResource.contentid=modResource.id'); $query->where(array( 'modResource.parent' => 2, 'modResource.deleted'=> 0, 'modTemplateVarResource.tmplvarid'=>1 )); $Tv = $modx->getCollection('modTemplateVarResource',$query); foreach($Tv as $key){ print($key->get('value')); print(' || '); }
Чистая таблица с 10 полями, 1000 строк одновременного вывода сильнонагружает модкс, а тут 22 тв параметра это же с ума сойти… которые отдельно достаются. считай 700*22 это 14к+ запросов к базе. Вообще да, надо расширять modResource и почти все ТВ поля переносить в отдельную таблицу
разница в том, что памяти гораздо меньше используется. По крайней мере, уже на память можно будет не грешить. Ну и как вариант — расширить modResource. http://habrahabr.ru/post/253737/ Это точно поможет :)
Хм, а в чем преимущество, просто выбрать и вывести все ресурсы не проблема, а вот когда начинаешь с ТВ маятся все виснет пока ручками маюсь по одной ТВ а не сразу все 22, работает кое как.
Понятно что ресурсов не хватает но что не так? как то такое можно же реализовать сейчас у меня 700 рессурсов у каждого 22 TV параметра мне нужна таблица этих ресурсов с параметрами да еще и обработать надо в каждой строке TV и вывести уже новые результаты в строку по идее всего то ничего данных то… помогите… плиз…
Хорошая статья, спасибо за предоставленный материал
Просто подобные непонятные надписи бывает выскакивают на некоторых хостингах, когда страница не найдена. Таймвеб один из таких.