0

Doctrine ORMを介して重複した名前の特定の列を取得するにはどうすればよいですか?

Zend で作成されたカスタム エンジンを使用するプロジェクトに取り組んでいます。問題は、2 つのテーブル (c_naslovi と c_sportovi) で列名が重複していることです。

列の名前を変更できますか?どうすればいいですか?私はドクトリンに不慣れです。n00bの質問にsry :)

$q = new Doctrine_RawSql();
        $q->select("{p.*}, {n.*}, {np.*}, {sp.*}")
            ->from("c_ponude p LEFT JOIN c_naslovi n ON p.NaslovID = n.NaslovID 
                LEFT JOIN c_nasloviprijevodi np ON np.NaslovID = n.NaslovID 
                LEFT JOIN c_sportovi sp ON n.SportID = sp.SportID")
            ->where("p.DatumVrijemeOdigravanja > NOW()")
            ->andWhere("(p.IndikatorPonude = 'P' OR p.IndikatorPonude = 'H')")
            ->andWhere("p.KoeficijentZbroj > 0")
            ->andWhere("p.BrojPonude = ?", array($offerId))
            ->orderby("p.RedniBrojRazrade")         
            ->addComponent("p", "cPonude p")
            ->addComponent("n", "p.cNaslovi n")
            ->addComponent("np", "n.cNasloviprijevodi np")
            ->addComponent("sp", "n.cSportovi sp");

    $offer = $q->execute();
4

1 に答える 1

0

私があなたの質問を正しく理解していれば、エイリアスを追加することでこれを解決できますが、Doctrine はクエリに独自のエイリアスを使用します。

したがって、重複する列の名前が自動的に変更されます。何かのようなもの:

c_naslovi.duplicate_column as c_0 
c_sportovi.duplicate_column as s_0 
于 2012-08-29T12:44:24.680 に答える