【问题标题】:zf2 generating entity with doctrine ORMzf2 使用理论 ORM 生成实体
【发布时间】:2014-02-01 06:13:04
【问题描述】:

我有使用 Doctrine ORM 和 ZF2 生成的实体类。

我改变了一个表结构,我想更新一个实体类,所以我试图重新生成实体类,但它不起作用。

我使用了以下代码:

vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Album\Entity\" --force --from-database annotation ./module/Album/src/clear

我得到了错误:

[Doctrine\ORM\Mapping\MappingException]
"Album\Entity\TestRun" 中的属性 "status" 已声明,但只能声明一次
orm:convert-mapping [--filter="..."] [--force] [--from-database] [--extend[="..."]] [--num-spaces[=" ..."]] [--namespace[="..."]] to-type dest-path

我想为特定的表重新生成实体类

【问题讨论】:

  • 表中同一列不应该有两个外键

标签: php zend-framework2 zfdoctrine


【解决方案1】:

如果您更改实体文件的结构,只需简单 \vendor\bin\doctrine-module orm:schema-tool:update --force 将根据您的实体定义更改表。

如果您仍想重新创建表,只需从您的 mysql 中删除该表并运行更新命令。您可能还剩下一些缓存文件,因此清除这些文件也可能是个好主意。

您可以像这样清除完整的缓存:

\vendor\bin\doctrine-module orm:clear-cache:query 
\vendor\bin\doctrine-module orm:clear-cache:result
\vendor\bin\doctrine-module orm:clear-cache:metadata

【讨论】:

  • 他想从改变的数据库表中更新一个实体类,而不是你描述的相反方向。
  • 这可能是可能的,但我认为这是不好的做法。结构更改应在实体内完成。然后通过命令行更新。
【解决方案2】:

如上所述,这可能是一种不好的做法,但是我使用以下命令来实现您所询问的结果:

vendor\bin\doctrine-module orm:convert-mapping --filter='Evaluation' --namespace='MyModule\Entity\\' --force --from-database annotation ./module/MyModule/src/   

还有另一个生成getter和setter的命令:

vendor\bin\doctrine-module orm:generate-entities --filter='Evaluation' ./module/MyModule/src/ --generate-annotations=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多