Php Symfony 3:Can';我们不能使关系正常运转
我有Entity和EntityHtml实体,它们具有一对一的关系(Entity存储元数据,EntityHtml充当缓存,存储准备好的HTML块以供呈现) 我在实体类中定义了一个关系: 但它不起作用。我还有一种感觉,注释根本不起作用,因为更改注释对应用程序的可操作性没有影响 另一方面,混淆.orm.xml反映了应用程序的工作方式Php Symfony 3:Can';我们不能使关系正常运转,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,我有Entity和EntityHtml实体,它们具有一对一的关系(Entity存储元数据,EntityHtml充当缓存,存储准备好的HTML块以供呈现) 我在实体类中定义了一个关系: 但它不起作用。我还有一种感觉,注释根本不起作用,因为更改注释对应用程序的可操作性没有影响 另一方面,混淆.orm.xml反映了应用程序的工作方式 我可以告诉Symfony根据注释的更改更新ORM XMLs吗 我应该将关系元数据复制到XML吗 Symfony是在XML和注释中使用信息还是选择一个源 config.
- 我可以告诉Symfony根据注释的更改更新ORM XMLs吗
- 我应该将关系元数据复制到XML吗
- Symfony是在XML和注释中使用信息还是选择一个源
# 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
如果您尝试以下方法,会有什么不同:
/**
* @ORM\OneToOne(targetEntity="EntityHtml")
* @ORM\JoinColumn(name="entity_Id", referencedColumnName="entityId")
*/
我认为“entityId”是EntityHtml中的Id,您需要在JoinColumn中指定不同的“name”值。我想我遇到了那个问题
试试看-我不确定它是否会起作用。如果你试试这个,会有什么不同吗:
/**
* @ORM\OneToOne(targetEntity="EntityHtml")
* @ORM\JoinColumn(name="entity_Id", referencedColumnName="entityId")
*/
我认为“entityId”是EntityHtml中的Id,您需要在JoinColumn中指定不同的“name”值。我想我遇到了那个问题
试试看——我不确定它是否会起作用。找到了这个。这是一个配置问题。为了使注释正常工作(xml是默认选项),您必须显式配置它:
# Doctrine Configuration
doctrine:
...
orm:
...
mappings:
AppBundle:
type: annotation
不幸的是,这在教程中没有具体说明。解决了这个问题。这是一个配置问题。为了使注释正常工作(xml是默认选项),您必须显式配置它:
# Doctrine Configuration
doctrine:
...
orm:
...
mappings:
AppBundle:
type: annotation
不幸的是,教程中没有指定这一点。每次更新注释时,您都需要更新模式(
php-bin/console-doctor:schema:update
我相信)。你做到了吗?@PietervandenHam我做到了,但它丝毫没有改变XML或db。你能给我们看看你的config.yml
?(相关部分)@PietervandenHam完成。每次更新注释时,您都需要更新您的模式(php-bin/console-doctor:schema:update
我相信)。你做到了吗?@PietervandenHam我做到了,但它丝毫没有改变XML或db。你能给我们看看你的config.yml
?(相关部分)@PietervandenHam Done。我相信这里的name代表引用表name中的一个列名。为了避免混合使用多个名称,我给列指定了驼峰大小写的名称(不带下划线)。为了避免混合使用多个名称,我给列提供了大小写名称(不带下划线)。