我对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命令表生成模式时。但是relationship不生成/state列,不能在customer表/中生成。为什么?我不知道?我会很高兴收到每一个建议和帖子。
发布于 2011-05-10 14:02:31
如果您紧跟Doctrine2文档中的示例,您可能会遇到这个问题,因为Symfony2将所有Doctrine2注释放置到orm命名空间中,在OneToOne和JoinColumn注释中似乎缺少这些注释。$state属性的代码应该如下所示:
/**
* @orm:OneToOne(targetEntity="State")
* @orm:JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;编辑:随着Symfony2 beta2中引入的更改,注释发生了一些变化。注释在使用之前需要导入;导入原则如下所示:
use Doctrine\ORM\Mapping as ORM;新的用法如下所示:
/**
* @ORM\OneToOne(targetEntity="State")
* @ORM\JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;注释系统有进一步更改的一些讨论;如果这些更改被推出,我将返回另一个编辑。
https://stackoverflow.com/questions/5951176
复制相似问题