Laravel 5

Eloquent 2 with

  • Avatar de InformatiqueEurofrance
    Membre depuis :
    29/12/2016
    Messages :
    20

    Bonjour;

    Je dois récupérer les information pour des factures. Il y a une table entete, une table ligne et une table divers (une sorte de 2° table lignes) .
    Mon code actuel :

    $T_entetes=new fac_entete;
    $entetes_select =$T_entetes->where('DATE', ">=", "2016-11-30");
    $entetes_divers=$entetes_select->with('fac_divers')->get();
    foreach ($entetes_divers as $entete) {
    $ret=$entete->FAC_NUM.'|';
    foreach($entete->fac_divers as $divers) {
    $ret.= $divers->DDIV_LIB.'|';
    }
    $data["test"][]=$ret;
    }
    $entetes_lignes=$entetes_select->with('fac_ligne')->get();
    foreach ($entetes_lignes as $entete) {
    $ret=$entete->FAC_NUM.'|';
    foreach($entete->gicab_fac_ligne as $divers) {
    $ret.= $divers->FACD_IDENT_ANI.'|';
    }
    $data["test"][]=$ret;
    }
    Ce qui me pause problème c'est notament que je fait 2 fois la même requette :
    $entetes_divers=$entetes_select->with('fac_divers')->get();
    $entetes_lignes=$entetes_select->with('fac_ligne')->get();

    Une solution pour optimiser celà ?
  • Avatar de InformatiqueEurofrance
    Membre depuis :
    29/12/2016
    Messages :
    20

    De cette façon, ça semble fonctionner
    $T_entetes=new fac_entete;

    $entetes_select =$T_entetes->where('DATE', ">=", "2016-11-30");

    $entetes=$entetes_select->with('fac_divers');

    $entetes=$entetes_select->with('fac_ligne')->get();

    foreach ($entetes as $entete) {

    $ret=$entete->FAC_NUM.'|';
    foreach($entete->fac_divers as $divers) {

    $ret.= $divers->DDIV_LIB.'|';

    }

    foreach($entete->gicab_fac_ligne as $ligne) {

    $ret.= $ligne->FACD_IDENT_ANI.'|';

    }

    $data["test"][]=$ret;

    }
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    1314

    Salut,

    Autant tout grouper :

    $entetes =$T_entetes->where('DATE', ">=", "2016-11-30")->with('fac_divers', 'fac_ligne')->get();
  • Avatar de InformatiqueEurofrance
    Membre depuis :
    29/12/2016
    Messages :
    20

    Merci

Vous ne pouvez pas répondre à ce sujet.