내 모델을 본인과 분리했습니다. 나는 대응 엔티티가있는 Review, RatedReview 및 ScoredReview라는 세 가지 모델을 가지고 있습니다. 그들의 관계는 ScoredReview extends ReviewReview extends Review입니다. Symfony + Doctrine : 모델 및 상속
그래서 내 모델 내가 가진 :// Project/ReviewBundle/Model/Review.php
class Review
{
}
// Project/ReviewBundle/Model/RatedReview.php
class RatedReview extends Review
{
}
// Project/ReviewBundle/Model/ScoredReview.php
class ScoredReview extends RatedReview
{
}
그럼 내가 지금처럼 모델을 확장하여 엔티티를 구현합니다
// Project/ReviewBundle/Entity/Review.php
use Project\ReviewBundle\Model\Review as BaseReview;
class Review extends BaseReview
{
}
// Project/ReviewBundle/Entity/RatedReview.php
use Project\ReviewBundle\Model\RatedReview as BaseRatedReview;
class RatedReview extends BaseRatedReview
{
}
// Project/ReviewBundle/Entity/ScoredReview.php
use Project\ReviewBundle\Model\ScoredReview as BaseScoredReview;
class ScoredReview extends BaseScoredReview
{
}
그래서 상속 모델 측에서 일어나고있다. Doctrine은 이것을 보지 못하고 테이블을 분리하여 매핑합니다. Doctrine은 모델을 확장하는 엔티티가 아닌 다른 엔티티를 확장하는 엔티티 만 찾기 때문에 이것이 이해됩니다.
엔티티를 확장하는 기능을 유지하면서 모델을 엔티티에서 분리하는 더 좋은 방법이 있습니까? 이것이 형질이 편리한 곳입니까?
다른 식으로 말하자면, 어쨌든 모델로 구성된 트리를 가질 수 있습니까? 이러한 모델을 확장하는 엔티티로 구성된 트리가 있습니까?
교리 상속을 보았습니까? http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html 단일 테이블 상속처럼 보입니다. – Cerad
@ Kerad 나는 단일 테이블 상속을 사용하고 있으며 일반적으로 멋지게 작동합니다. 여기서 문제는 단일 테이블 상속이 서로를 확장하는 모델을 확장하는 대신 엔티티가 직접 확장해야한다는 것입니다. 그러나 엔티티가 아니라 모델에서 ScoredReviews에 대한 내 논리를 원했습니다. 나는 기본 클래스에 대해 하나의 모델을 사용하고 하위 클래스에 대해 특성을 사용하여이를 해결했습니다. – JProffitt