Как выбрать только нужные поля объектов?

Я использую API Pimcore для извлечения объектов.

$myObjects = new Object\MyObject\Listing();
$myObjects->load();

$myObjects->getObjects();

Работает как положено. Теперь я хочу выбрать только определенное поле моих объектов, например. поле имени.

Как я могу указать Pimcore выбирать только те поля, которые мне нужны? Возможно ли это даже через API или мне нужно использовать собственный SQL? Если да, то как я могу это сделать?

С наилучшими пожеланиями


person user3180943    schedule 09.03.2017    source источник


Ответы (1)


Листинг pimcore всегда возвращает полный набор объектов, соответствующих вашему условию листинга...

Если вам нужен быстрый и простой способ выбрать только одно поле вашего объекта, я рекомендую использовать класс pimcore db:

$db = \Pimcore\Db::get();
$fieldsArray = $db->fetchCol("SELECT `YOUR_FIELD` FROM `object_query_CLASS-ID`");

Это вернет вам ширину массива всех значений YOUR_FIELD из таблицы запросов объектов вашего класса.


Чтобы динамически получить идентификатор класса для вашего запроса, вы должны использовать:

$classId = \Pimcore\Model\Object\MyObject::classId();

Изменить:

Чтобы получить более одного столбца поля, вам нужно использовать «fetchAll» вместо «fetchCol»:

 $fieldsArray = $db->fetchAll("SELECT `YOUR_FIELD`, `YOUR_FIELD_2` FROM `object_query_CLASS-ID`");
person Laurenz Glück    schedule 09.03.2017
comment
Спасибо за ваш отзыв. работает очень хорошо и делает то, что я хочу. благодарю вас. - person user3180943; 10.03.2017