2016-04-14 18 views
0

Kodumla ilgili bir sorunum var: ContextErrorException: Uyarı: Tanımsız değişken: tpId /tmxpage/apache/htdocsEDI/Editracker/src/Matrix/MatrixEdiBundle/Controller/MatrixController.php line 435, symfony için yeni ve ben nedenini bilmiyorumContextErrorException: Uyarı: Tanımsız değişken?

public function checkDocumentAction($docType, $direction, $senderId, $receiverId) { 
    $response = 0; 
    $em =$this->getDoctrine()->getManager(); 
    $temp = $em 
     ->getRepository('MatrixEdiBundle:EdiInterchangeId') 
     ->findInterchangeId($senderId); 
    $countTemp = count($temp); 
    if($temp != null) { 
     if($countTemp == 1) { 
     foreach($temp as $key) { 
      $tpId = $key->getEdiTradingPartner(); 
     } 
     } else { 
     $temp1 = $em 
      ->getRepository('MatrixEdiBundle:EdiInterchangeId') 
      ->findInterchangeId($receiverId); 
     $countTemp1 = count($temp1); 
     if($temp1 != null) { 
      if($countTemp1 == 1) { 
      foreach($temp1 as $key) { 
       $tpId = $key->getEdiTradingPartner(); 
      } 
      } elseif($countTemp1 > 1) { 
      foreach($temp1 as $key) { 
       $temp2 = $key->getEdiTradingPartner(); 
       $temp3 = $em 
        ->getRepository('MatrixEdiBundle:EdiInterchangeId') 
        ->findTradingPartner($temp2, $senderId); 
       $countTemp3 = count($temp3); 
       if($countTemp3 == 1) { 
       foreach($temp3 as $key) { 
        $tpId = $key->getEdiTradingPartner(); 
       } 
       } 
      } 
      } 
     } 
     } 

     if ($tpId != null) { 
     $result = $em 
      ->getRepository('MatrixEdiBundle:EdiTradingPartnerTransactions') 
      ->getTpTrans($tpId, $docType, $direction); 
     // if ($result != null) { 
     // $response = 1; 
     // } 
     if ($result != null) { 
      foreach ($result as $key) { 
      $isRequired = $key->getIsRequired(); 
      if ($isRequired == 1) { 
       $response = 1; 
      } else { 
       $response = 2; 
      } 
      } 
     } 
     } 
    } 

    return new Response($response); 
} 

o rejectedTrans.html.twig benim pasajı tpId olduğu matrixcontroller.php İşte

içinde bir fonksiyon var: Burada

MatrixController.php benim kodudur rendered, coz de diyor ki: Bir şablonun oluşturulması sırasında bir istisna atıldı ("Uyarı: Tanımsız değişken: tpId,:

{% if transaction != null %} 
    {% for trans in transaction %} 
     <tr> 
     <td style="width: 8%;"> 
      {{ render(controller('MatrixEdiBundle:Matrix:getTradingPartnerName', { 
       'timexID' : trans.ediTransaction.receiverId, 
       'customerID' : trans.ediTransaction.senderId 
      })) }} 
     </td> 
     {% set result=render(controller('MatrixEdiBundle:Matrix:getFile', { 
      'fileName' : trans.ediTransaction.fileName, 
      'senderId': trans.ediTransaction.senderId , 
      'receiverId' : trans.ediTransaction.receiverId, 
      'gsNumber' : trans.ediTransaction 
     }))|split('+', 4) %} 
+0

Sen $ tpId ayarlandığı zaman, bu sadece bir dizi foreach döngüleri içinde son değere ayarlanacak farkında mısın? Ayrıca, çok kötü bir uygulama olan döngüler içinde sorgular yapıyorsunuz, bu döngüler, döngüler içinde sorguladığınız verilere katılmak için doğru şekilde yazılmışsa, bu döngüleri kaldırabilirsiniz. – LMS94

cevap

0

$ tpId yalnızca koşullarla başlatır. Yani tüm koşullar yanlışsa, değişken tanımlanmayacaktır.

null başlangıç ​​değerini

public function checkDocumentAction($docType, $direction, $senderId, $receiverId) { 
    $response = 0; 
    $tpId = null; 

... 
+0

Çözdüğünüz cevap için teşekkürler. – geekInThePink

İlgili konular