【问题标题】:EntityRepository not found [duplicate]找不到实体存储库[重复]
【发布时间】:2012-07-05 22:38:22
【问题描述】:

可能重复:
Doctrine error: Class 'Doctrine\ORM\EntityRepository' not found

我是 Doctrine 的新手,我正在关注文档中的示例。我创建了我的实体并且一切正常,直到我创建了一个存储库。我有一个名为 User 的实体和一个 UserRepository。

但是当我尝试使用用户存储库时,我收到错误消息:致命错误:在 C:\xampp\htdocs\excap\repositories\UserRepository.php 中找不到类 'Doctrine\ORM\EntityRepository'第 10 行

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;
});

?>

【问题讨论】:

    标签: php doctrine


    【解决方案1】:

    由于您提供的信息有限,我冒昧猜测您的自动加载器配置错误;它似乎无法自动包含 EntityRepository 类。

    没有任何进一步的信息,我只能指点你Doctrine's documentation on the autoloader,我真的帮不了你

    【讨论】:

    • 谢谢克雷格,我还应该发布哪些其他信息?自动加载内容?
    • 至少,我们需要查看 autoloader/bootstrap 文件。看到实例化 UserRepository 的文件也没有什么坏处。
    • 在文档中的列表中说:自动加载由 Composer 负责。您只需在项目中包含 composer 自动加载文件:
    • 但是您是在使用 Composer,还是手动下载了 Doctrine?
    • 我是用 Composer 下载的。我编辑了我的帖子并添加了您所说的内容。非常感谢
    【解决方案2】:

    问题解决了。问题出在 bootstrap.php 文件中。我在加载 bootstrap_doctrine.php 之前加载了实体;就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2020-09-12
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      相关资源
      最近更新 更多