我学习Symfony2,我的数据库有问题。我使用此文档:http://symfony.com/doc/2.7/book/doctrine.html 我有Product.php类,但是当我尝试执行此命令时: php app / console doctrine:generate:entities AppBundle / Entity / Product 我收到错误: “Class”AppBundle \ Entity \ Product“不是有效实体或映射超类。”
这是我的Product.php文件:
<?php
/**
* Created by PhpStorm.
* User: Marcin
* Date: 20.12.2015
* Time: 23:33
*/
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\Column(type="decimal", scale=2)
*/
protected $price;
/**
* @ORM\Column(type="text")
*/
protected $description;
}
其他人有同样的错误,但他们的代码中没有“@ORM \ Entity”。我有,但问题仍然存在。 我不知道发生了什么......
更新
这是config.yml的片段:
doctrine:
dbal:
driver: pdo_mysql
host: localhost
port: 3306
dbname: db_name
user: db_user
password: db_password
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
Updated2:
我更改了config.yml:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
# naming_strategy: doctrine.orm.naming_strategy.underscore
# auto_mapping: true
entity_managers:
default:
mappings:
AppBundle: ~
当我使用时: php app / console doctrine:mapping:info 我明白了: “根据当前配置,您没有任何映射的Doctrine ORM实体。如果您有实体或映射文件,则应检查映射配置是否存在错误。”