I have base entity Article
Code: Select all
/**
* Vido\CoreBundle\Entity\Article
*
* @ORM\Table(name="articles")
* @ORM\HasLifecycleCallbacks()
* @ORM\Entity(repositoryClass="Vido\CoreBundle\Repository
\ArticleRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({ "Video" = "Video", "News" = "News",
"Media" = "Media"})
*/
class Article
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var integer $createdAt
*
* @ORM\Column(name="created_at", type="integer",
nullable=false)
*/
protected $createdAt = 0;
.....
and a couple entities extending it - Video, News, Media etc.
something like
Code: Select all
/**
* Vido\CoreBundle\Entity\Video
* @ORM\Table()
* @ORM\Entity(repositoryClass="Vido\CoreBundle\Repository
\VideoRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Video extends Article
{
/**
* @var string $videoSourceFile
*
* @ORM\Column(name="video_source_file", type="string",
length=255, nullable=true)
*/
protected $videoSourceFile = '';
/**
* @var boolean $isVideoConverted
*
* @ORM\Column(name="is_video_converted", type="boolean",
nullable=false)
*/
protected $isVideoConverted = false;
Everything works great :), except 3 problems.
1) As I see in my table "articles" there is field "type", which have
values like "Video", "News" etc. But when I got collection of the
child items - they dont have field type, so I have added ugly code
like
Code: Select all
public function getType()
{
return "Video";
}
to all child entities. :( How it can be done in "right" way?
2) I am not sure, how I can get collection of the items with different
types? (Like get all news/videos/medias sorted by date and show them
by using different templates in twig) - I have only ugly solution -
get collection of the articles and for each item generate child object
based on ID in cycle - kind of ugly :(
3) whenever I run entity generation command, like php app\console
doctrine:generate:entities VidoCoreBundle:Video - it generate in child
class (Video) ALL properties of the parent class and all get/set
functions.. Class become very overloaded with code - one of the
benefits from doctrine2 inheritance is lost :(
Can it be solved in some way? Maybe I misconfigured something etc.?
--
If you want to report a vulnerability issue on symfony, please send it to
security at symfony-project.com
You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en