したがって、OneToManyとManyToOneの関係を持つ次の2つのクラスがあります。
名前空間RM\Entity;
Doctrine \ Common \ Collections\ArrayCollectionを使用します;
/ **
* @Table(name = "users")
* @実在物
* @author Csabi
* /
クラスユーザー{
/ **
* @Id
* @Column(name = "id"、type = "integer"、nullable = false)
* @GeneratedValue(strategy = "IDENTITY")
* @OneToMany(targetEntity = "JobListing"、mappedBy = "ownerId"、orphanRemoval = true)
* /
プライベート$id;
/ **
* @var string $ displayname
* @Column(type = "string"、nullable = false)
* /
プライベート$displayname;
}
と
名前空間RM\Entity;
Doctrine \ Common \ Collections\ArrayCollectionを使用します;
/ **
* @Table(name = "job_listings")
* @Entity(repositoryClass = "RM \ Entity \ Repository \ JobListingRepository")
* @author Csabi
* /
クラスJobListing{
/ **
* @var integer $ id
* @Column(name = "id"、type = "integer"、nullable = false)
* @Id
* @GeneratedValue(strategy = "IDENTITY")
* /
プライベート$id;
/ **
*@varユーザー
* @ManyToOne(targetEntity = "User"、cascade = {"persist"})
* @JoinColumns({
* @JoinColumn(name = "ownerId"、referencedColumnName = "id"、nullable = false)
*})
* /
プライベート$ownerId;
ただし、JobListingを保存するときに、persistを実行すると、次のエラーがスローされます。
アプリケーションエラー 例外情報: メッセージ:クラスは存在しません スタックトレース: #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-> casinoPersist(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()
ここで何が欠けていますか?