2016-01-27 28 views
0

我有以下的配置如何學說使用代理服務器2

$isDevMode = \Config::get("DEBUG"); 
self::$config = Setup::createAnnotationMetadataConfiguration(array(APP_PATH.'models'), $isDevMode, APP_PATH.'proxies'); 

// naming strategy 
$namingStrategy = new \DoctrineExtensions\CustomNamingStrategy(); 
self::$config->setNamingStrategy($namingStrategy); 

// database configuration parameters 
self::$conn = array(
    'url' => \Config::get('DB_DSN') 
); 

self::$evm = new \Doctrine\Common\EventManager; 

// Table Prefix 
$tablePrefix = new \DoctrineExtensions\TablePrefix(\Config::get('TABLE_PREFIX')); 
self::$evm->addEventListener(Events::loadClassMetadata, $tablePrefix); 
self::$entityManager = EntityManager::create(self::$conn, self::$config, self::$evm); 

從教條2文檔我的理解,這應該是APP_PATH.'proxies'文件夾中生成代理類(當$isDevMode是真實的。這應該自動發生) 。

不幸的是,它不會自動生成類。我不知道是什麼原因。但是,我通過使用以下命令php vendor/bin/doctrine orm:generate-proxies手動生成這些類。類生成並已存在於該文件夾中。爲了儘量代理類我寫了下面幾行:

$qq = $this->repositoryPages 
->createQueryBuilder('p') 
->select('p.title') 
->where('p.id = :id') 
->setParameter('id', 6) 
->getQuery()->getResult(); 
var_dump($qq); 

不幸的是,我這個返回的關聯數組

array (size=1) 
0 => 
    array (size=1) 
    'title' => string 'Welcome' (length=7) 

什麼是錯的,我需要做的就是對象是什麼?

回答

0

我想你忘了添加一個二傳手

self::config->setAutoGenerateProxyClasses(true); 

我忘了補充例如:

$this->repositoryPages 
    ->createQueryBuilder('p') 
    ->where('p.id = :id') 
    ->setParameter('id', 6) 
    ->getQuery()->getResult(); 

Query builder documentation

+0

這是從'createConfiguration'設置原則 – Krasimir