gpt4 book ai didi

zend-framework - 教义 2 "Class does not exist"坚持

转载 作者:行者123 更新时间:2023-12-04 05:44:32 26 4
gpt4 key购买 nike

所以我有这两个类,它们之间有 OneToMany 和 ManyToOne 关系:

命名空间 RM\Entity;

使用 Doctrine\Common\Collections\ArrayCollection;

/**
* @Table(name="用户")
* @实体
* @作者萨比
*/
类用户{

/**
* @ID
* @Column(name="id", type="integer", nullable=false)
* @GeneratedValue(strategy="IDENTITY")
* @OneToMany(targetEntity="JobListing", mappedBy="ownerId", orphanRemoval=true)
*/
私有(private) $id;

/**
* @var 字符串 $displayname
* @Column(type="string", nullable=false)
*/
私有(private) $displayname;
}



命名空间 RM\Entity;

使用 Doctrine\Common\Collections\ArrayCollection;

/**
* @Table(name="job_listings")
* @Entity(repositoryClass="RM\Entity\Repository\JobListingRepository")
* @作者萨比
*/
类作业列表 {

/**
* @var 整数 $id
* @Column(name="id", type="integer", nullable=false)
* @ID
* @GeneratedValue(strategy="IDENTITY")
*/
私有(private) $id;

/**
* @var 用户
* @ManyToOne(targetEntity="User",cascade={"persist"})
* @JoinColumns({
* @JoinColumn(name="ownerId", referencedColumnName="id", nullable=false)
* })
*/
私有(private) $ownerId;

但是,当保存 JobListing 时,坚持它会引发以下错误:

应用程序错误
异常信息:

消息:类不存在
堆栈跟踪:

#0 library\Doctrine\ORM\Mapping\ClassMetadata.php(67): ReflectionClass->__construct(false)
#1 library\Doctrine\ORM\Mapping\ClassMetadataFactory.php(350): Doctrine\ORM\Mapping\ClassMetadata->__construct(false)
#2 library\Doctrine\ORM\Mapping\ClassMetadataFactory.php(260): Doctrine\ORM\Mapping\ClassMetadataFactory->newClassMetadataInstance(false)
#3 library\Doctrine\ORM\Mapping\ClassMetadataFactory.php(169): Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata(false)
#4 library\Doctrine\ORM\EntityManager.php(247): Doctrine\ORM\Mapping\ClassMetadataFactory->getMetadataFor(false)
#5 library\Doctrine\ORM\UnitOfWork.php(1222): Doctrine\ORM\EntityManager->getClassMetadata(false)
#6 library\Doctrine\ORM\UnitOfWork.php(1678): Doctrine\ORM\UnitOfWork->doPersist(1, Array)
#7 library\Doctrine\ORM\UnitOfWork.php(1252): Doctrine\ORM\UnitOfWork->cascadePersist(Object(RM\Entity\JobListing), Array)
#8 library\Doctrine\ORM\UnitOfWork.php(1201): Doctrine\ORM\UnitOfWork->doPersist(Object(RM\Entity\JobListing), Array)
#9 library\Doctrine\ORM\EntityManager.php(454): Doctrine\ORM\UnitOfWork->persist(Object(RM\Entity\JobListing))
#10 library\RM\Entity\JobListingService.php(54): Doctrine\ORM\EntityManager->persist(Object(RM\Entity\JobListing))
#11 application\controllers\JobListingController.php(28): RM\Entity\JobListingService->saveJobListing(Object(RM\Entity\JobListing))
#12 library\Zend\Controller\Action.php(516): JobListingController->addAction()

我在这里想念什么?

最佳答案

问题实际上出在我试图保存的对象中。我没有将整个用户实体传递给 ownerId,只有用户的 id。

所以当方法

Doctrine\ORM\UnitOfWork->doPersist(1, Array)

被称为它实际上是试图保存一个数字而不是用户实体。

这就是为什么抛出错误“找不到类”的原因,因为没有类“1”。

关于zend-framework - 教义 2 "Class does not exist"坚持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com