Php Can';不能删除实体

Php Can';不能删除实体,php,database,doctrine-orm,entity,Php,Database,Doctrine Orm,Entity,我有一个名为parameters的表 它有以下字段:id,项目id,阶段id,公司id,等等 我在那里有两行: +----+------------+----------+------------+ | id | project_id | phase_id | company_id | +----+------------+----------+------------+ | 1 | 10 | NULL | NULL | | 2 | 10

我有一个名为
parameters
的表

它有以下字段:
id
项目id
阶段id
公司id
,等等

我在那里有两行:

+----+------------+----------+------------+
| id | project_id | phase_id | company_id |
+----+------------+----------+------------+
|  1 |         10 |     NULL |       NULL |
|  2 |         10 |        2 |       NULL |
+----+------------+----------+------------+
我想删除一行

try {
    $parameter = $em->find("Parameters", 1);
    $em->remove($parameter);
    $em->flush();
} catch (Exception $e) {
    displayTree($e->getMessage());
    displayTree($e->getTraceAsString());
    exit();
}
但我面临错误信息:

Entity was not found.
#0 /home/www/html/.tmp/__CG__Phase.php(108): Doctrine\ORM\Proxy\ProxyFactory->Doctrine\ORM\Proxy\{closure}(Object(DoctrineProxies\__CG__\Phase), '__load', Array)
#1 /home/www/html/.tmp/__CG__Phase.php(108): Closure->__invoke(Object(DoctrineProxies\__CG__\Phase), '__load', Array)
#2 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2254): DoctrineProxies\__CG__\Phase->__load()
#3 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1688): Doctrine\ORM\UnitOfWork->cascadeRemove(Object(DoctrineProxies\__CG__\Phase), Array)
#4 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2278): Doctrine\ORM\UnitOfWork->doRemove(Object(DoctrineProxies\__CG__\Phase), Array)
#5 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1688): Doctrine\ORM\UnitOfWork->cascadeRemove(Object(DoctrineProxies\__CG__\Plan), Array)
#6 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2278): Doctrine\ORM\UnitOfWork->doRemove(Object(DoctrineProxies\__CG__\Plan), Array)
#7 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1688): Doctrine\ORM\UnitOfWork->cascadeRemove(Object(Phase), Array)
#8 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2278): Doctrine\ORM\UnitOfWork->doRemove(Object(Phase), Array)
#9 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1688): Doctrine\ORM\UnitOfWork->cascadeRemove(Object(DoctrineProxies\__CG__\Project), Array)
#10 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2278): Doctrine\ORM\UnitOfWork->doRemove(Object(DoctrineProxies\__CG__\Project), Array)
#11 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1688): Doctrine\ORM\UnitOfWork->cascadeRemove(Object(Parameters), Array)
#12 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1659): Doctrine\ORM\UnitOfWork->doRemove(Object(Parameters), Array)
#13 /home/www/html/v3/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(647): Doctrine\ORM\UnitOfWork->remove(Object(Parameters))
#14 /home/www/html/v3/test.php(15): Doctrine\ORM\EntityManager->remove(Object(Parameters))
#15 {main}
因此,我可以假设问题是,phase_id具有Null而不是有效id,因为当我尝试删除第二行时,它可以正常工作

在类
参数中
我有下一个与阶段的映射:

/**
 * @ManyToOne(targetEntity="Phase", inversedBy="parameters")
 * @JoinColumn(name="phase_id", referencedColumnName="id")
 **/
protected $phase;
在课程
阶段
我有以下几点:

/**
 * @OneToMany(targetEntity="Parameters", mappedBy="phase")
 */
private $parameters;

我找不到问题出在哪里,可能是我做错了什么?

当外键上的值为无效的例如,如果您有0,则会发生此问题

您的数据库模式必须符合原则。使用命令行工具doctrine orm:validate Schema幸运的是,它没有帮助。当我运行这个命令时,我看到“[Mapping]OK-映射文件是正确的”,但是仍然有一个错误,正如您在表中所看到的,我提供了phase_id=NULL