2012-11-16 54 views
1

我想從Symfony2應用程序中的Doctrine 2的表中獲取數據。在開發計算機上運行的代碼在部署到生產服務器時會引發錯誤。這是我的一個控制器。Symfony2 class_parents()類不存在錯誤

public function listEntitiesAction($entity, Request $request) 
{  
    $repository = $this->getDoctrine()->getRepository('AALCOInventoryBundle:' . $entity); 
    $metadata = $this->getDoctrine()->getEntityManager()->getClassMetadata('AALCOInventoryBundle:' . $entity); 
    $dataTable = new Datatable($request->query->all(), $repository, $metadata, $this->getDoctrine()->getEntityManager()); 
    $dataTable->makeSearch(); 
    $view = $this->view($dataTable->getSearchResults(), 200) 
      ->setFormat('json'); 
    return $this->get('fos_rest.view_handler')->handle($view); 
} 

上面的代碼在本地開發機器上的linux服務器上工作。其中一個實體如下。

<?php 
namespace AALCO\InventoryBundle\Entity; 
use Doctrine\ORM\Mapping as ORM; 
/** 
* AALCO\InventoryBundle\Entity\Uom 
* 
* @ORM\Table(name="uoms") 
* @ORM\Entity 
*/ 
class Uom 
{ 
    // entity stuff 
} 

我對config.yml的doctrine有默認設置,這是錯誤。

request: ErrorException: Warning: class_parents() [<a href='function.class-parents'>function.class-parents</a>]: Class AALCO\InventoryBundle\Entity\uom does not exist and could not be loaded in 
/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php line 40 (uncaught exception) at 
/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php line 40 

運行的所有實體php app/console doctrine:mapping:info回報OK。我已經檢查了其他類似的錯誤答案,但沒有一個符合我的具體問題。

回答

2

Symfony2使用自動加載來加載帶有類的文件。當你要求uow類時,它會查找uow.php文件。文件名在Linux服務器上區分大小寫,所以uow.php和Uow.php是不同的文件。

您需要添加某種地圖或使用ucfirst函數$entity

+0

謝謝。用你的幫助解決了這個問題。不過,我還有一個與實體「Branch.php」,「User.php」等不同的捆綁包,我可以從它們中獲取數據而不會出現此錯誤。不知道這是爲什麼。 –

相關問題