2017-03-09 1 views
0

J'utilise l'API Pimcore pour récupérer des objets.Comment sélectionner uniquement les champs d'objets nécessaires?

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

$myObjects->getObjects(); 

Fonctionne comme prévu. Maintenant, je veux sélectionner uniquement un champ spécifique de mes objets, par ex. le champ du nom.

Comment puis-je dire à Pimcore de ne sélectionner que les champs que je veux? Est-ce que c'est possibile à travers l'API ou ai-je besoin d'utiliser du SQL personnalisé? Si oui, comment puis-je faire cela?

Meilleures salutations

Répondre

2

La liste de pimcore retourne toujours l'ensemble complet d'objets correspondant à votre condition d'inscription ...

Si vous voulez un moyen rapide et facile de sélectionner un seul champ de votre objet, je recommandons d'utiliser la classe pimcore db:

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

Cela vous renvoie une largeur de tableau toutes les valeurs « YOUR_FIELD » de la table de requête d'objet de votre classe.


Pour obtenir l'ID de classe pour votre requête dynamiquement votre devrait utiliser:

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

Edit:

Pour obtenir plus d'une colonne de champ, vous devez utiliser 'fetchAll' au lieu de 'fetchCol':

$fieldsArray = $db->fetchAll("SELECT `YOUR_FIELD`, `YOUR_FIELD_2` FROM `object_query_CLASS-ID`"); 
+0

je vous remercie pour vos commentaires. fonctionne très bien et fait ce que je veux. Je vous remercie. – user3180943