2012-07-05 16 views
0

Doctrine의 새로운 기능으로, 설명서의 예제를 따르고 있습니다. Repository 클래스 (예 : UserRepository.php)를 만들고 EntityRepository 클래스를 확장하려고하면 다음 오류 메시지가 표시됩니다. 치명적인 오류 : 'Doctrine \ ORM \ EntityRepository'클래스가 C : \ xampp \ htdocs \ excap \ repositories에 없습니다. \이 내 저장소 클래스 라인 (10)Doctrine 오류 : 'Doctrine ORM EntityRepository'클래스를 찾을 수 없습니다.

에 UserRepository.php :

use Doctrine\ORM\EntityRepository; 

/** 
* Description of UserRepository 
* 
* @author Mario 
*/ 
class UserRepository extends EntityRepository 
{ 

내가 뭘 잘못입니까?

<?php 
//bootstrap_doctrine.php 
$isDevMode = true; 
use Doctrine\ORM\Tools\Setup; 
require_once 'vendor/autoload.php'; 

$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__.'/entities'), $isDevMode); 
$conn = array(
    'driver' => 'pdo_mysql', 
    'user' => 'mydbuser', 
    'password' => 'mydbpassword', 
    'dbname' => 'mydbname' 
); 

$entityManager = \Doctrine\ORM\EntityManager::create($conn, $config); 
?> 

<?php 
//boostrap.php 
//Entities 
require_once 'entities/User.php'; 
require_once 'entities/Gender.php'; 
require_once 'entities/AccessPoint.php'; 

//Repositories 
require_once 'repositories/UserRepository.php'; 

if(!class_exists("Doctrine\Common\Version", FALSE)) 
{ 
    require_once 'bootstrap_doctrine.php'; 
} 
?> 

<?php 
// autoload.php generated by Composer 
if (!class_exists('Composer\\Autoload\\ClassLoader', false)) { 
    require __DIR__ . '/composer' . '/ClassLoader.php'; 
} 

return call_user_func(function() { 
    $loader = new \Composer\Autoload\ClassLoader(); 
    $composerDir = __DIR__ . '/composer'; 

    $map = require $composerDir . '/autoload_namespaces.php'; 
    foreach ($map as $namespace => $path) { 
     $loader->add($namespace, $path); 
    } 

    $classMap = require $composerDir . '/autoload_classmap.php'; 
    if ($classMap) { 
     $loader->addClassMap($classMap); 
    } 

    $loader->register(); 

    return $loader; 
}); 
?> 
+0

클래스 페이지에 doctrine 클래스를 포함하고 있습니까? – Blaster

+0

Composer autoload.php를 사용하고 있습니다 (아마도 필요한 모든 클래스를로드하고있을 것입니다). 다른 모든 것들이 잘 작동하고, 모든 엔티티를 사용할 수 있으므로 문제없이 유지할 수 있습니다. – PachinSV

답변

2

문제가 해결되었습니다. 문제는 bootstrap.php 파일에 있습니다. bootstrap_doctrine.php를로드하기 전에 엔티티를로드하고있었습니다. 그게 다야.

0

당신이 당신의 저장소 클래스의 네임 스페이스를 넣어나요 (그런데, 나는 Doctrine2 사용하여 작곡가를 설치)?

+0

문제가 해결되었습니다. 문제는 bootstrap.php 파일에 있습니다. bootstrap_doctrine.php를로드하기 전에 엔티티를로드하고있었습니다. 그게 다야. – PachinSV