2011-05-14 40 views
5
$posts = $em->find('Application\BlogBundle\Entity\Post',1); 
print_r ($posts); 

मुझे यह क्यों मिला?सिम्फनी 2, सिद्धांत 2: getResult ऑब्जेक्ट

Barii\BlogBundle\Entity\Post Object ([id:Barii\BlogBundle\Entity\Post:private] => 1 [title:Application\BlogBundle\Entity\Post:private] => something [body:Application\BlogBundle\Entity\Post:private] => content ) 

इस तरह एक साधारण सरणी के बजाय:

array ([id] => 1, 
     [title] => "something",    
     [body] => "content" ) 

मैं Symfony 2.

उत्तर

9

के साथ उपयोग करें आप यहाँ एक जोड़े विकल्प हैं। जहां तक ​​मुझे पता है, आप डिफ़ॉल्ट रूप से इकाई भंडारों से सरणी के रूप में परिणाम नहीं पा सकते हैं। इसके बजाय, आप दो चीजों में से एक कर सकते हैं:

सबसे पहले, आप अपनी इकाई ऑब्जेक्ट पर toArray() विधि लागू कर सकते हैं (शायद mapped superclass के माध्यम से) जो कि गुणों की एक सरणी देता है।

$query = $em->createQuery('SELECT p FROM Application\BlogBundle\Entity\Post p WHERE p.id=:pid'); 
$query->setParameter('tid', $postId); 
$result = $query->getArrayResult(); // shortcut for $query->getResult(Query::HYDRATE_ARRAY); 

में अधिक गहराई DQL पर प्रलेखन पाया जा सकता है here:

दूसरे, आप जानकारी है कि आप getArrayResult() विधि का उपयोग कर की जरूरत है, शायद कुछ इस तरह खींचने के लिए इस्तेमाल कर सकते हैं सिद्धांत क्वेरी लैंग्वेज।

+10

यह निराशाजनक है कि एसएफ 2/सिद्धांत इस बेहद आम उपयोग के मामले की अपेक्षा नहीं करता है। – Acyra

संबंधित मुद्दे