2017-02-14 1 views
2

Ich habe ein paar Probleme mit einem Export nach csv. In meiner Tabelle habe ich einen Nullwert und ich kann nicht herausfinden, wie man sie fängt.export csv catch nullwert symfony 2

public function exportCSVAction() 
{ 
    $results = $this->getDoctrine()->getManager() 
     ->getRepository('MyRepoBundle:Cronexecution')->findAll(); 

    $response = new StreamedResponse(); 
    $response->setCallback(
     function() use ($results) { 
      $handle = fopen('php://output', 'r+'); 
      foreach ($results as $row) { 

       if (!($row->getNbLineIn()) && !($row->getNbLineOut())) { 
        $delContact = (($row->getNbLineIn()) - ($row->getNbLineOut())); 
       } 
       else{ 
        $delContact="Unknown"; 
       } 
       $data = array(
        $row->getClient(), 
        $row->getDealingName(), 
        $row->$delContact, 
       ); 
       fputcsv($handle, $data); 
      } 
      fclose($handle); 
     } 
    ); 
    $response->headers->set('Content-Type', 'application/force-download'); 
    $response->headers->set('Content-Disposition', 'attachment; filename="export.csv"'); 

    return $response; 
} 

Wenn ich die $ row löschen -> $ delContact die CSV-Export Arbeit Ursache dort nicht Nullwert ist, aber wenn ich es lassen bekam ich einen Fehler „Diese Seite kann nicht erreicht werden“.

Also habe ich versucht zu fangen, wenn es null ist mit 2 oder 3 verschiedenen Methoden, aber unmöglich, es herauszufinden.

Danke für Ihre Hilfe

+0

$ row -> $ delContact sollte nur $ delContact sein, aber gesagt haben, dass es mir nicht klar ist, was Sie Nullwert reden über. – Cerad

+0

einige meiner getNbLineOut() und getNbLineIn() sind null, so dass sie nur einen Fehler werfen und nicht die csv erstellen – Taloud

Antwort

0

Änderung nach Code unten:

$data = array(
     $row->getClient(), 
     $row->getDealingName(), 
     $delContact, 
     ); 
+0

Yeah thx eine Menge! Jetzt versuche ich herauszufinden, wie man jede in eine andere Zeile und nicht nur in die "A" -Zeile mit "," setzt, um sie zu trennen. Aber ich denke, ich muss es in einem anderen Format machen: – Taloud