Doctrine2を使い始めたばかりですが、エンティティを永続化するときにエラーが発生します。エラーは次のとおりです。 'クラス"Myapp\ app \ entity\user"は有効なエンティティまたはマップされたスーパークラスではありません。'
eAcceleratorがコンピューターにインストールされていません。
私のアプリ(私はSymfonyを使用していません)の構造は次のようなものです:
- MyApp
- アプリ
- 実在物
- 芯
- 外部の
- 教義
- 外部の
- アプリ
そして、私はDoctrineを次のように初期化します。
$classLoader = new ClassLoader('Doctrine', CORE_PATH . 'external');
$classLoader->register();
$cache = new \Doctrine\Common\Cache\ArrayCache();
$doctrineConfig = new \Doctrine\ORM\Configuration();
$doctrineConfig->setMetadataCacheImpl($cache);
$doctrineConfig->setQueryCacheImpl($cache);
$driverImpl = $doctrineConfig->newDefaultAnnotationDriver(array(APP_PATH . 'entity'));
$doctrineConfig->setMetadataDriverImpl($driverImpl);
$doctrineConfig->setAutoGenerateProxyClasses(false);
$connectionOptions = array(
'driver' => $database['driver'],
'dbname' => $database['dbname'],
'user' => $database['username'],
'password' => $database['password']
);
$this->em = EntityManager::create($connectionOptions, $doctrineConfig);
これらの行の何が問題になっていますか?
また、オートローダーを使用してクラスを自動ロードする場合、Doctrineクラスローダーを使用する必要がありますか?はいの場合、これらの行は正しいですか?
$classLoader = new ClassLoader('myApp\app\entity', APP_PATH . 'entity');
$classLoader->register();
$classLoader = new ClassLoader('myApp\core\entity', CORE_PATH . 'entity');
$classLoader->register();
編集:エンティティクラスを追加するのを忘れました
Doctrine \ ORM\MappingをORMとして使用します。
/**
* @ORM\Entity
*/
class user
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="username", type="string", length=255)
*/
protected $username;
/**
* @ORM\Column(name="nicename", type="string", length=255)
*/
protected $nicename;
/**
* @ORM\Column(name="email", type="string", length=255)
*/
protected $email;
/**
* @ORM\Column(name="password", type="string", length=255)
*/
protected $password;
//getters
//setters