我有实体和 EntityHtml(s)实体,这些实体具有一对一关系(实体< / em>存储元数据, EntityHtml 就像一个缓存,存储准备好的HTML块用于渲染。)
我在实体类中定义了一个关系:
/**
* @ORM\OneToOne(targetEntity="EntityHtml")
* @ORM\JoinColumn(name="entityId", referencedColumnName="entityId")
*/
private $entityHtml;
但它不起作用。我也有一种感觉,即注释根本不起作用,因为更改它们对应用程序的可操作性没有影响。
另一方面,弄乱 .orm.xml(s)反映了应用程序的工作方式。
config.yml是默认值:
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_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
答案 0 :(得分:0)
如果您尝试这样做会有什么不同:
/**
* @ORM\OneToOne(targetEntity="EntityHtml")
* @ORM\JoinColumn(name="entity_Id", referencedColumnName="entityId")
*/
我认为“entityId”是EntityHtml中的Id,您需要在JoinColumn中指定不同的“name”值。我想我遇到了这个问题。
尝试一下 - 我不确定它是否会起作用。
答案 1 :(得分:0)
想出这个。这是一个配置问题。为了使注释有效(xml是默认选项),您必须显式配置它:
# Doctrine Configuration
doctrine:
...
orm:
...
mappings:
AppBundle:
type: annotation
不幸的是,教程中没有指定。