Doctrine PHP致命错误:未捕获PDOException:SQLSTATE [42S02]:找不到基表或视图

时间:2018-02-22 12:56:52

标签: php doctrine-orm

我正在尝试使用vendor\bin\doctrine orm:schema-tool:create创建架构,但收到此错误:

  

致命错误:未捕获PDOException:SQLSTATE [42S02]:基表或   找不到视图:1146表'eventapp.event'不存在   C:\\厂商\教义\ DBAL \ lib中\学说\ DBAL \驱动\ PDOStatement.php:105

我正在使用MySQL和Doctrine ORM 2.以前使用相同的表存在模式,我之前使用vendor\bin\doctrine orm:schema-tool:drop --force,它正确执行,因此它不会成为连接的问题。 orm:schema-tool:update给了我同样的错误。

我尝试删除架构并使用相同名称再次创建架构,但仍然收到错误。我还检查了每个实体类的注释,它们都是正确的。例如:

/**
 * @ORM\Entity
 * @ORM\Table(name="event")
 **/
class Event
{
  ...

我的猜测:我有两个与event具有多对一关联的实体,我假设架构工具在创建架构时正在查找该表,并且因为它不存在,我收到这个错误。我两次得到错误的事实似乎支持这一点,但我可能完全错了。这就是协会的样子:

/**
 * @ORM\ManyToOne(targetEntity="Event")
 * @ORM\JoinColumn(name="event", referencedColumnName="id")
 */
private $event;

event中没有相应的条目,因为我只需要它是单向的。

编辑:没有。从我的实体中删除了所有关联。仍然得到完全相同的错误消息。我完全迷失在这里。

如何让Doctrine在此处正确创建架构?我还没有尝试创建一个空的event表,但这不是一个理想的解决方案,因为我希望它可以轻松部署而无需进一步设置......

1 个答案:

答案 0 :(得分:0)

...对于遇到同样错误的人,我想出了问题所在。在我的bootstrap.php中,我使用实体管理器(例如$eventRepository = $entityManager->getRepository('Event'))从表中检索数据。删除此代码使命令正确执行。