Symfony CollectionType没有实体

时间:2017-10-19 17:24:59

标签: php forms symfony doctrine entity

我有一个:

class Q&A
{
    private $question
    private $answer
}

我需要CollectionType s的集合(Q&A),但我的模型中没有反面实体(Q&A实体没有 ManyToOne 关系与任何其他实体)。

问题

我有什么选择?

我也有:

class Page
{  
    /**
     * @ORM\OneToMany(targetEntity="Content")
     */
    private $contents;
}

我考虑将Page类设为abstract,并为每种网页类型创建一个单独的实体,每个实体都继承自Page

那样我可以

class Q&APage
{
    /**
     * @ORM\OneToMany(targetEntity="Q&A")
     */
    private $q&as;
}

但它不是一个大网站,我有5种不同的网页类型,我觉得为每种网页类型设置不同的实体会有点过分。

1 个答案:

答案 0 :(得分:0)

首先,这与Symfony无关。这是一个学说的事情。顺便说一句,这里你没有过分杀戮,因为你的模型应该有意义并且理性,让你开发你的代码库。

有很多情况下,程序员,设计一个格式错误的模型,并在开发代码库时遇到麻烦。

毕竟,你怎么知道:

  

这不是一个大网站

?今天的许多大型网站从一开始就没那么大。因此,作为开发人员,尝试使用模型设计是一个很好的做法。

建议的设计看起来不错,说实话,您对模型所需的数据结构有很好的理解。

你需要有一个:

class QuestionAndAnswer
{
    /**
     * @ORM\ManyToOne(targetEntity="QuestionAndAnswerPage", inversedBy="questionAndAnswers")
     */
     private $questionAndAnswerPage;
}

和a:

class QuestionAndAnswerPage
{
    /**
     * @ORM\OneToMany(targetEntity="QuestionAndAnswer", mappedBy="questionAndAnswerPage")
     */
     private $questionAndAnswers;
}

提示:尽量使用完整的英语单词和短语,因为这是面向对象世界的最佳实践。请注意,您的用户不需要阅读它们。它们可以帮助您在将来陷入格式错误的短语中。