我只安装了Doctrine ORM,但是一直收到Product类的MappingException错误,请帮我解决。
<?php
namespace src;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product{
/**
* @ORM\Column(type="integer", length = 5)
* @ORM\Id
* @ORM\GenerateValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=2, name="product_code")
*/
protected $code;
/**
* @ORM\Column(type="string", length=10, name="product_name")
*/
protected $name;
}
我有一个普通的Bootstrap文件
<?php
// bootstrap.php
require_once "vendor/autoload.php";
require_once "src/Product.php";
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
$paths = array(__DIR__."/src");
$isDevMode = true;
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => 'myDbName',
);
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);
$theProduct = $entityManager->find("Product", 500);
我有一个带有Composer的
{
"require": {
"doctrine/orm": "v2.5.10"
},
"autoload": {
"psr-4": {
"src\\": "src/"
}
}
}
我正在运行bootstrap.php
无论我做什么,总是会出现致命错误: 在D:\ projects \ pp \ vendor \ doctrine \ common \ lib \ Doctrine \ Common \ Persistence \ Mapping \ MappingException.php的第96行中,未捕获Doctrine \ Common \ Persistence \ Mapping \ MappingException:类'Product'不存在。
__DIR__."/src"
?你打印了该路径并检查一切是否正确吗?自动加载程序配置正确吗? - ccKepnamespace src;
或通过src\Product
请求实体管理器。最好有一个src/entities
文件夹,并且没有命名空间的实体。在这种情况下,Doctrine 将处理它们的加载。如果您确实这样做:use src\Product
,则自动加载程序可能会起作用。 - num8ernamespace src;
和use Doctrine\ORM\Mapping as ORM;
。将所有的@ORM\Entity
等转换为@Entity
,并在其他文档块中进行类似的更改,一切都开始正常工作了。有人能解释一下我的命名空间有什么问题吗? - user3410843