首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表已存在

表已存在
EN

Stack Overflow用户
提问于 2013-08-21 01:45:14
回答 2查看 9.7K关注 0票数 24

我在zend框架2中使用了规则2。下面是我的实体文件。问题是,当我尝试使用验证模式时,

代码语言:javascript
复制
./vendor/bin/doctrine-module orm:validate-schema

命令。

我弄错了,

代码语言:javascript
复制
[Doctrine\DBAL\Schema\SchemaException]                               
The table with name 'database.opportunitycriteria' already exists.

我该怎么办?

代码语言:javascript
复制
namespace Administration\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * OpportunityCriteria
 *
 * @ORM\Table(name="OpportunityCriteria")
 * @ORM\Entity
 */
class Criteria
{
/**
 * @var integer
 * @ORM\Id
 * @ORM\Column(name="criteria_id", type="integer", nullable=false)
 */
private $criteria_id;

/**
 * @var string
 *
 * @ORM\Column(name="description", type="string", nullable=false)
 */
private $description;
}

和适当的getter和setter方法..

EN

回答 2

Stack Overflow用户

发布于 2015-10-25 04:11:38

我终于想通了。OP的用例可能有所不同,但在我的例子中,这是因为配置错误的双向多对多关系。

我有以下实体:

代码语言:javascript
复制
class Cuisine {
    /**
     * @ManyToMany(targetEntity="Dish")
     * @ORM\JoinTable(name="CuisineDish", ...)
     */
    protected $dishes;
}

class Dish {
    /**
     * @ORM\ManyToMany(targetEntity="Cuisine")
     * @ORM\JoinTable(name="CuisineDish", ...)
     */
    protected $cuisines;
}

缺少的是@ManyToMany注释的inversedBymappedBy属性。只有当关联是双向的时,才需要这些。

因此,现在正确映射的实体如下所示:

代码语言:javascript
复制
class Cuisine {
    /**
     * @ManyToMany(targetEntity="Dish", inversedBy="cuisines")
     * @ORM\JoinTable(name="CuisineDish", )
     */
    protected $dishes;
}

class Dish {
    /**
     * @ORM\ManyToMany(targetEntity="Cuisine", mappedBy="dishes")
     * @ORM\JoinTable(name="CuisineDish", ...)
     */
    protected $cuisines;
}

并且orm:validate-schema不会再带着异常退出。

异常消息只是误导性的,因为此操作不会更改数据库。此外,只有在验证与数据库的同步时才会发现此问题,而不会在本应验证映射(--skip-sync)的情况下发现此问题。

我只是reported this bug

票数 17
EN

Stack Overflow用户

发布于 2017-11-06 02:01:14

如果您想要使用已被某个已安装的包使用的表名,则可能会导致此错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18341692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档