Выберите одну запись в @OneToMany Association из Model. - PullRequest
0 голосов
/ 30 июля 2011

У меня есть модель Доктрина 2, определенная как:

class Movie {
    /** @Id @Column(type="integer") @GeneratedValue @var int */
    private $id;

    /**
     * @ManyToOne(targetEntity="Language")
     * @JoinColumn(nullable=false)
     */
    private $default_title_language;

    /**
     * @OneToMany(targetEntity="MovieTitle", mappedBy="movie")
     * @var MovieTitle[]
     */
    protected $titles = null;

    public function __construct() {
        $this->titles = new ArrayCollection();
    }

    public function get_titles() { return $this->titles; }
    public function get_title(Language $language = NULL) {
        if (is_null($language)) {
            $language = $this->default_title_language;
        }

        // ??????????
    }
    public function add_title(MovieTitle $title) { $this->titles[] = $title; }

    public function get_default_title_language() {
        return $this->default_title_language;
    }
    public function set_default_title_language(Language $language) {
        $this->default_title_language = $language;
    }
}

так что ... есть модели Movie, MovieTitle и Language. Один фильм может иметь много названий (зависит от языка). Я хочу предоставить модели фильма метод, который вернет мне только один параметризованный заголовок. Как я могу это сделать? (помечено ??????????)

1 Ответ

1 голос
/ 30 июля 2011

Doctrine 2.1 имеет проиндексированные коллекции. Это должно сделать работу

http://www.doctrine -project.org / документы / ОРМ / 2,0 / ен / учебники / рабочий-с индексированной-associations.html

...