Stu*_*uck 6 symfony doctrine-orm
我尝试使用Doctrine2为我的Symfony2应用程序构建一个manyToOne关系.我收到此错误,我不知道为什么:
app/console doctrine:schema:create
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
ATTENTION: This operation should not be executed in an production enviroment.
[Doctrine\DBAL\Schema\SchemaException]
There is no column with name 'activityGroup' on table 'activity'.
Run Code Online (Sandbox Code Playgroud)
这是两个类:http://pastebin.com/Ev7Rwgxr
我认为在Activity类上实际上有一个activityGroup ...那么这个错误试图说什么呢?
谢谢!
我知道了...
uniqueconstraints期望真正的db字段名称,activityGroup_id而不仅仅是activityGroup.
通过提供JoinColumn,可以确保在DB中调用字段.
因此,一个聪明的解决方案是:
/**
* @ORM\Entity
* @ORM\Table(name="activity",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="name_idx", columns={"activity_group_id", "name"}),
* @ORM\UniqueConstraint(name="sort_idx", columns={"activity_group_id", "sort_id"})
* }
* )
*/
class Activity
{
// ...
/**
* @ORM\ManyToOne(targetEntity="SeduceMe\SiteBundle\Entity\ActivityGroup", inversedBy="activities")
* @ORM\JoinColumn(name="activity_group_id", referencedColumnName="id")
*/
protected $activityGroup;
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |