1

Symfony2アプリケーションでDoctrine2を使用してテーブルからデータを取得しようとしています。私の開発マシンで動作するコードは、本番サーバーにデプロイされるとエラーをスローします。これが私のコントローラーの1つです。

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サーバーで機能します。エンティティの1つは、次のとおりです。

<?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このタイプのエラーについてSOで他の回答を確認しましたが、特定の問題に一致するものはありません。

4

1 に答える 1

2

Symfony2は自動ロードを使用してクラスを含むファイルをロードします。クラスを要求するとuow、uow.phpファイルが検索されます。Linuxサーバーではファイル名で大文字と小文字が区別されるため、uow.phpとUow.phpは異なるファイルです。

に何らかのマップを追加するか、ucfirst関数を使用する必要があります$entity

于 2012-11-16T09:17:42.733 に答える