【问题标题】:Doctrine error: Class 'Doctrine\ORM\EntityRepository' not found教义错误:找不到类 'Doctrine\ORM\EntityRepository'
【发布时间】:2012-07-05 11:58:33
【问题描述】:

我是 Doctrine 的新手,我正在关注文档中的示例。当我创建一个 Repository 类(例如 UserRepository.php)并尝试扩展 EntityRepository 类时,我收到以下错误消息:Fatal error: Class 'Doctrine\ORM\EntityRepository' not found in C:\xampp\htdocs\excap \repositories\UserRepository.php 第 10 行

这是我的存储库类:

use Doctrine\ORM\EntityRepository;

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

我做错了什么? (顺便说一下,我使用 Composer 安装了 Doctrine2)

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

【问题讨论】:

  • 您的课程页面中是否包含教义课程?
  • 我正在使用 Composer autoload.php(假设这是加载所有必要的类);其他一切都很好,我可以使用我所有的实体,我可以毫无问题地持久化它们。

标签: php doctrine-orm composer-php


【解决方案1】:

您是否将命名空间放入您的存储库类中?

【讨论】:

  • 问题已解决。问题出在 bootstrap.php 文件中。我在加载 bootstrap_doctrine.php 之前加载了实体;就是这样。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2020-06-27
    • 2016-05-05
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多