0

DoctrineORMまたは任意のORMを初めて使用します

$em = Zend_Registry::getInstance ()->entitymanager;         
$p = $em->createQuery ( "               
SELECT u                
FROM Teon_Model_User u              
WHERE u.app_auth IN (:app_auth)" );                     
$p->setParameter ( 'app_auth', $app_auth );         
$array = $p->getArrayResult();      
$customer_id = $array[0]['customer_id']; 


$p = $em->createQuery ( "               
SELECT p                
FROM Teon_Model_Purchase p              
WHERE p.customer IN (:customer_id)" );                  
$p->setParameter ( 'customer_id', $customer_id );       
$array = $p->getArrayResult();      
$purchase_id = $array[0]['id'];      

$p = $em->createQuery ( "               
SELECT pm               
FROM Teon_Model_PurchaseManual pm               
WHERE pm.purchase_id IN (:purchase_id)" );                  
$p->setParameter ( 'purchase_id', $purchase_id );       
$array = $p->getArrayResult();      
$m_id = $array[0]['manual_id'];     

このクエリを単純化できますか、それはとてもばかげているように見えます、私はzendフレームワークでDoctrineを使用しています

このクエリは、認証コードを指定して、購入にmanual_idが含まれているかどうかをユーザーに認証するためのものです。

4

1 に答える 1

1

これを行うために私が考えることができる2つの簡単な方法は次のとおりです。

<?php

$em = Zend_Registry::getInstance()->entitymanager;

// 1st way
$user = $em->getRepository('Teon_Model_User')->findOneByAppAuth($app_auth);
$user->getCustomerId();

// 2nd way
$user = $em->getRepository('Teon_Model_User')->findOneBy(array(
    'app_auth' => $app_auth,
));
$user->getCustomerId();
于 2012-07-08T16:29:46.540 に答える