gpt4 book ai didi

php - 交响乐 2 : Doctrine can't create relationship

转载 作者:可可西里 更新时间:2023-11-01 13:48:21 27 4
gpt4 key购买 nike

我对 Symfony 2.0 和学说还很陌生。我在不同的包中有状态和客户实体。我只想添加状态和客户之间的关系。我编码状态和客户实体。这是我的代码:

/**
* @orm:Entity
*/
class Customer
{
/**
* @orm:Id
* @orm:Column(type="integer")
* @orm:GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @OneToOne(targetEntity="State")
* @JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;

}

/**
* @orm:Entity
*/
class State
{
/**
* @orm:Id
* @orm:Column(type="integer")
* @orm:GeneratedValue(strategy="IDENTITY")
*/
protected $id;

/**
* @orm:Column(type="string", length="50")
*/
protected $name;
}

还有我的配置文件:

doctrine:
dbal:
driver: %database_driver%
host: %database_host%
dbname: %database_name%
user: %database_user%
password: %database_password%

orm:
auto_generate_proxy_classes: %kernel.debug%
mappings:
FogCustomerBundle: { type: annotation, dir: Entity/ }
FogMainBundle: { type: annotation, dir: Entity/ }

所以我的问题是当我使用 php app/console doctrine:schema:create 命令生成模式时生成了表。但是关系没有生成/状态列没有在客户表/中生成。为什么?我不知道?我会很高兴收到每条建议和帖子。

最佳答案

如果您密切关注 Doctrine2 文档中的示例,您可能会遇到该问题,因为 Symfony2 将所有 Doctrine2 注释放入 orm 命名空间,而您在 OneToOne 和JoinColumn 注释。 $state 属性的代码应如下所示:

/**
* @orm:OneToOne(targetEntity="State")
* @orm:JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;

编辑:随着 Symfony2 beta2 中引入的变化,注释发生了一点变化。注解在使用前需要导入;导入 Doctrine 看起来像这样:

use Doctrine\ORM\Mapping as ORM;

那么新的用法是这样的:

/**
* @ORM\OneToOne(targetEntity="State")
* @ORM\JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;

some discussion注释系统的进一步变化;如果推出这些更改,我会回来进行另一次编辑。

关于php - 交响乐 2 : Doctrine can't create relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com