データベースから情報を取得する非常に単純なスクリプトを作成して、Doctrine2の使用方法を学習しようとしています。問題は、Doctrineがマッピングエンティティを見つけて使用する方法を説明するドキュメントが見つからないことです。そのため、エンティティが見つからないと文句を言うと、問題を解決するために何をすべきかわかりません。私のwwwフォルダにある次の構造を検討してください。
- 教義/
- エンティティ/
- person.php
- myTestPage.php
person.php
<?php
/** @Entity @Table(name="person")*/
class person
{
/**
* @Id @Column(type="integer")
*/
protected $uid;
}
?>
myTestPage.php
<?php
require "Doctrine/Doctrine/ORM/Tools/Setup.php";
$lib = "Doctrine";
Doctrine\ORM\Tools\Setup::registerAutoloadDirectory($lib);
use Doctrine\ORM\Tools\Setup,
Doctrine\ORM\EntityManager;
$paths = array("/Entities");
$isDevMode = true;
$dbParams = array("driver" => "pdo_mysql",
"host" => "myhost.ca",
"user" => "Shawn",
"password" => "noneofyourbusiness",
"dbname" => "testDB");
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$em = EntityManager::create($dbParams, $config);
$qb = $em->createQueryBuilder();
$qb->select(array('uid'))
->from('person', 't');
$query = $qb->getQuery();
$result = $query->getResult();
echo $result;
?>
myTestPage.phpにアクセスすると、次のエラーメッセージが表示されます。
致命的なエラー:キャッチされない例外'Doctrine \ ORM \ Query\QueryException'とメッセージ'[SemanticalError] line 0、col 24 near' person':Error:Class' person' isnotdefined。' C:\ wamp \ www \ Doctrine \ Doctrine \ ORM \ Query\QueryException.phpの47行目
問題は、Doctrineがperson.phpを見つけられないことのようですが、どうすればこれを解決できますか?