2017-04-15 34 views
0

我試圖用查詢結果顯示一個excel文件。一切直到那一刻我嘗試用下面的代碼另一種格式來顯示日期字段會很好:帶日期結果的查詢格式化

> $licencies->map(function($licencie) { 
> 
>     $licencie['dt_naissance'] = \Carbon\Carbon::createFromFormat('Y-m-d', 
> $licencie['dt_naissance'])->format('d/m/y'); 

我現在得到一個空的Excel文件。如果我刪除代碼,我得到的數據與文件

如何解析只從查詢中的「dt_naissance」列?

這裏全碼:

public function build() 
{ 
    $licencies = Licencies::where('lb_assurance' , '=' , 'Lafont') 
     ->leftJoin('activite_licencie' , 'activite_licencie.id' , '=' , 'licencies.activite_licencie_id') 
     ->leftJoin('saisons' , 'saisons.id' , '=' , 'licencies.saison_id') 
     ->leftJoin('pays' , 'pays.id' , '=' , 'licencies.pays_naissance_id') 
     ->leftJoin('type_licence' , 'type_licence.id' , '=' , 'licencies.type_licence_id') 
     ->leftJoin('structures' , 'structures.id' , '=' , 'licencies.structure_id') 
     ->leftJoin('civilite' , 'civilite.id' , '=' , 'licencies.civilite_id') 
     ->select('civilite.lb_civilite' , 'num_licence' , 'lb_nom' , 'lb_prenom' , 'dt_naissance' , 'pays.fr' ,'activite_licencie.lb_activite' ,'saisons.lb_saison', 'lb_surclassement' , 'structures.nom_structure' , 'lb_assurance' , 'cd_dept_naissance' , 'lb_adresse' , 'tel_fix_licencie' , 'tel_port_licencie' , 'adresse_email' , 'licencies.created_at') 
     //->whereRaw('DATE(licencies.created_at) = CURRENT_DATE') 
     ->get(); 

     $licencies->map(function($licencie) { 

      $licencie['dt_naissance'] = \Carbon\Carbon::createFromFormat('Y-m-d', $licencie['dt_naissance'])->format('d/m/y'); 

     }); 

     $excel_file = Excel::create('DailyRecapLicencesLafont', function($excel) use ($licencies) { 
     $excel->sheet('Excel', function($sheet) use ($licencies) 
     { 
      $sheet->fromArray($licencies); 
     }); 
    }); 

回答

1

你忘了裏面map返回。它應該是

$licencies->map(function($licencie) { 

    $licencie['dt_naissance'] = \Carbon\Carbon::createFromFormat('Y-m-d', $licencie['dt_naissance'])->format('d/m/y'); 

    return $licencie; //this is the part that you miss 

}); 
+0

非常感謝它的工作!我有第二列「created_at」,我想解析得太像這樣:$ licencie ['created_at'] = \碳\碳:: createFromFormat('YM-D',$ licencie ['created_at']) - >格式('d/m/y');我收到一個異常:數據丟失 –

+0

現在它的工作非常感謝!!!!! –

1

你可以嘗試解析日期,然後格式化它像

$licencie['dt_naissance'] = \Carbon\Carbon::parse($licencie['dt_naissance'])->format('d/m/y');