Doktrini: refclass içinde atamalarında bir tarih ile çok çok

2 Cevap php
residentSector:
        columns:
            id_resident_sector:
                type: integer
                primary: true
                autoincrement: true
            id_resident:
                type: integer(8)
            id:
                type: integer(8)
            date:
                type: timestamp 
residents:
        columns:
            id_resident:
                type: integer(8)
                primary: true
                autoincrement: true
            firstname:
                type: string(50)
            lastname:
                type: string(50)        
        relations:           
            Sectors:
                class: Sectors
                local: id_resident
                foreign: id
                refClass: residentSector 
Sectors:
        columns:
                id:
                     type: integer(4)
                     primary: true
                     autoincrement: true
                sector_name:
                      type: string(50)
                id_resp:
                      type: integer(4)
                visibility:
                      type: integer(1)

Bana verilen tarih (örnek olarak en son tarih) à verilen bir "sektör" tüm "sakinleri" seçmek istiyorum.

(Bu atamalarında tarih çünkü) benim problem tarih alanı refclass olduğunu böylece

-> Burada ('residents.Sectors.date = max (residents.Sectors.date)')

refclass koleksiyon parçası değildir, çünkü belli ki işe yaramaz ..

doktrin ilişkiyi tanımlamak için iyi bir yoldur yüzden mukimi tarihte son sektörünü alabilirim nedir?

Şimdiden teşekkürler!

2 Cevap

Ne yazık Doktrin yapmak için çalışıyoruz ne elde etmek için herhangi bir yerleşik bir yol sağlamaz. Aslında Ancak çok-çok ilişkisi çift bir-çok ilişkisi kullanır.

Peki ne ihtiyacınız olan şudur:

  1. Doğru DQL sorgu yapmak:

    Doctrine_Query::create()
    ->from('Residents r')
    ->innerJoin('r.XXX rs WITH rs.date = ?', '08-04-2010')
    ->innerJoin('r.Sector s');
    

    XXX ResidentSector tablonun adıdır. Ben onun adını tablo adıyla aynı olacak mı pek emin değilim, ama Doktrini tarafından oluşturulan tablo tanımı adını alabilirsiniz.

  2. Sorguyu çalıştırmak sonra Doctrine_Record::mapValue kullanarak, kendi tarafından tüm haritalama yapmak zorunda kalacaktır.

Ben doktrinini nasıl kullanılacağını bilmiyorum ama yinelenen verilerin bolluğu birçok ilişkileri sonuçlarına çok sahip.

Eğer WHERE yan tümcesinde eklemek ne olursa olsun veri belki residentToSectors tabloda atanan tarih var 3 tablolar (sakinleri, sektörler, residentsToSectors) ve daha sonra esas ikamet veya sektör ya için bilgi kapmak gerekir?