2010-10-11 7 views
0

Je veux rejoindre 3 table, Szamla, Termek et Vasarlo.Doctrine beaucoup-à-plusieurs relations avec champ supplémentaire

Ceci est mon schéma:

options: 
    collate: utf8_unicode_ci 
    charset: utf8 

Szamla: 
    actAs: [Timestampable] 
    columns: 
    datum: 
     type: timestamp 
     notnull: true 
    total: 
     type: float 
     notnull: true 
    fizetesi_datum: 
     type: date 
    fizetesi_ora: 
     type: time 
    teljesites: 
     type: timestamp 
    user_id: 
     type: int(10) 
     notnull: true 
    afa: 
     type: boolean 
     notnull: true 
     default: 0 
    relations: 
    SzamlaTermekek: 
     class: Termek 
     local: szamla_id 
     foreign: termek_id 
     refClass: SzamlaTermek 

Vasarlo: 
    columns: 
    nev: 
     type: string(255) 
     notnull: true 
    varos: 
     type: string(200) 
     notnull: true 
    utca: 
     type: string(200) 
     notnull: true 
    zip: 
     type: string(10) 
     notnull: true 
    email: 
     type: string(255) 
     notnull: true 
    orszh: 
     type: string(4) 
     notnull: true 
    krzt: 
     type: string(2) 
     notnull: true 
    telszama: 
     type: string(4) 
     notnull: true 
    telszamb: 
     type: string(3) 
     notnull: true 
    relations: 
    Szamlak: 
     class: Szamla 
     type: many 
     local: id 
     foreign: user_id 
     foreignAlias: Vasarlo 

Termek: 
    columns: 
    nev: 
     type: string(255) 
     notnull: true 
    leiras: 
     type: string(500) 
     notnull: true 
    ar: 
     type: float 
     notnull: true 
    raktar: 
     type: string(255) 
     notnull: true 
     default: Dunaújváros 
    raktaron: 
     type: integer(4) 
     notnull: true 
     default: 0 
    zarolt: 
     type: boolean 
     notnull: true 
     default: 0 
    jotallas: 
     type: boolean 
     notnull: true 
     default: 0 
    garancia: 
     type: boolean 
     notnull: true 
     default: 0 
    slider: 
     type: integer(1) 
     notnull: true 
    relations: 
    SzamlaTermekek: 
     class: Szamla 
     local: termek_id 
     foreign: szamla_id 
     refClass: SzamlaTermek 

SzamlaTermek: 
    columns: 
    szamla_id: 
     type: integer 
     primary: true 
    termek_id: 
     type: integer 
     primary: true 
    number: 
     type: integer 
     notnull: true 
     default: 1 

La requête:

$query = Doctrine_Core::getTable($table)->createQuery('s'); 
    $query->leftJoin('Vasarlo v'); 
    $query->leftJoin('SzamlaTermekek t'); 
    $result = $query->fetchArray(); 

Le résultat est correct, mais le nombre de SzamlaTermek nécessaires. Comment obtenir le champ numérique? Sans sélectionner.

Répondre

0

utilisation

->select('t.number') 

comme

$query->select('t.number') 
     ->leftJoin('Vasarlo v') 
     ->leftJoin('SzamlaTermekek t'); 
+0

OK, cela fonctionne, mais sans choisir? – turbod

+0

sans sélectionner vous pouvez joindre toutes les tables mais vous obtenez tous les champs des 3 tables –

+0

comme: Doctrine_Query :: create() -> from ('table a') -> leftJoin ('Vasarlo v') -> leftJoin (' SzamlaTermekek t '); –

Questions connexes