带有JOIN的Doctrine $ record-> get()

I'm using the following piece of code to retrieve the tags of a shop:

$tags = $this->getObject()->get('Tag');

$this->getObject() returns a Shop object, and ->get('Tag') returns an array of Tag objects related to this shop.

Here's how my database is arranged: 1 Shop = 1 or more Tag, and 1 Tag = 1 Tag_Translation.

What i'd like to do is to retrieve, instead of an array of Tag objects, and array of Tag objects with their translations (in other words, a kind of JOIN).

How is that possible, keeping that same syntax? Thank you very much, i'm new to Doctrine and ORMs in general, i would have had no problem doing it with MySQL but here ...

You may solve this issue like this

a) You can call Tag Models function, when you need the translation

$tag->getTagTranslation()

b) Or you can overwrite your Shop's getTag() function and build your own Query with DQL as @greg0ire suggested, to fetch translation and tag at once

public function getTag(){
    return Doctrine_Query::create()
           ->from("Tag t")
           ->leftJoin("t.TagTranslation tt")
           ->addWhere("t.shop_id = ?", $this->getId())
}

(Of course you can name a new function e.g. getTagsWithTranslation())

This assumes, you have built a schema.yml with proper relations !