2017-02-14 1 views
2

У меня есть проблемы с экспортом в csv. В моей таблице у меня есть нулевое значение, и я не могу понять, как их поймать.export csv catch null value 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; 
} 

Когда я удаляю $ строки -> $ delContact экспорта CSV работа причины есть не нулевое значение, но когда я позволяю это я получил «Этот сайт не может быть достигнут» ошибкой.

Итак, я попытался поймать, когда он равен нулю с помощью 2 или 3 разных методов, но невозможно понять это.

Спасибо за вашу помощь

+0

$ строки -> $ delContact должна быть всего лишь $ delContact, но сказав, что это не для меня ясно, что нулевое значения вам говорят. – Cerad

+0

некоторые из моих getNbLineOut() и getNbLineIn() ноль, поэтому они просто бросают ошибку и не хотят создавать csv – Taloud

ответ

0

Изменения в соответствии с сильфонным кодом:

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

Да, много! Теперь я пытаюсь понять, как поместить каждый в разные строки, а не только в строку «А» с «,», чтобы разделить их. Но я думаю, что мне нужно сделать это в другом формате: / – Taloud