に新しいエントリを挿入しながら、私は教義2.2との奇妙な問題を抱えています。私はデータベースに新しいエントリを挿入しようとし、私は次の問題に直面した。それはどういう意味ですか、どのように解決できますか?キャッチされない例外データベース
Fatal error: Uncaught exception 'Doctrine\ORM\Mapping\MappingException' with message 'Class Model\User is not a valid entity or mapped super class.' in C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\Mapping\MappingException.php:147
Stack trace:
#0 C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\Mapping\Driver\AnnotationDriver.php(166): Doctrine\ORM\Mapping\MappingException::classIsNotAValidEntityOrMappedSuperClass('Model\User')
#1 C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\Mapping\ClassMetadataFactory.php(293): Doctrine\ORM\Mapping\Driver\AnnotationDriver->loadMetadataForClass('Model\User', Object(Doctrine\ORM\Mapping\ClassMetadata))
#2 C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\Mapping\ClassMetadataFactory.php(178): Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata('Model\User')
#3 C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\EntityManager.php(271): Doctrine\ORM\Mapping\ClassMetadataFactory->getMe in C:\xampp\htdocs\www\DoctrineExplained\DoctrineORM\Doctrine\ORM\Mapping\MappingException.php on line 147
私のプロジェクトのディレクトリ構造は次のようである:
./test
DoctrineORM/
DoctrineORM/binに
DoctrineORM/binに/ドクトリン
モデル/
モデル/ User.php
test.phpを
そして最後に、それらは、テストの私のコードです。 PHPとモデル/ User.php
--- Model/User.php ---
<?php
// Model File model/User.php
namespace Model;
/** @Entity @Table(name="users") */
class User
{
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
public $id;
/** @Column(type="string", length=50) */
public $name;
/** @Column(type="integer", length=50) */
public $age;
}
?>
そして最後のコードはtest.phpを
<?php
//// test.php
require 'DoctrineORM/Doctrine/Common/ClassLoader.php';
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine', 'DoctrineORM');
$classLoader->register();
$classloader = new \Doctrine\Common\ClassLoader('model', __DIR__);
$classloader->register();
$config = new \Doctrine\ORM\Configuration();
$cache = new \Doctrine\Common\Cache\ArrayCache();
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
$driverImpl = $config->newDefaultAnnotationDriver('model');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir('proxies');
$config->setProxyNamespace('proxies');
$config->setAutoGenerateProxyClasses(true);
$config->getAutoGenerateProxyClasses();
$connectionOptions = array(
'driver' => 'pdo_mysql',
'dbname' => 'test',
'user' => 'root',
'password' => '0000'
);
$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
// insert a new User to DB
$user = new model\User();
$user->name = 'lorem impum user';
$user->age = 55;
$em->persist($user);
$em->flush();
ORMを実行してみましょう:ドクトリン2 CLIツールでスキーマを検証する - 出力とは何ですか?それは検証されますか? –
申し訳ありませんが、私はLinux上でこれを開発していません。(Windowsの場合)ウィンドウでどのように実行できますか? –
こちらの手順を試してみてください:http://codeutopia.net/blog/2008/07/28/setting-up-command-line-php-on-windows/ - phpコマンドを設定したら、 //docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/tools.html**:私はそこに使用する必要がコマンド教義ツール –