2013-10-11 61 views
-1

我做一個形式,Symfony和控制器中我得到這個職位值,但是當我得到的值,如果變量不存在,顯示未定義的變量,這裏是我的控制器:如何刪除symfony中未定義的變量名?

for($i=1; $i<=$itemscounter; $i++){ 

        if($i==1){ 
         $items = $_POST['items']; 
         $description=$_POST['description']; 
         $unitprice=$_POST['unitprice']; 
         $quantity=$_POST['quantity']; 
         $linetotal=$_POST['linetotal']; 


        }else { 
         $items = $_POST['items'.$i]; 
         $description=$_POST['description'.$i]; 
         $unitprice=$_POST['unitprice'.$i]; 
         $quantity=$_POST['quantity'.$i]; 
         $linetotal=$_POST['linetotal'.$i];      
        } 

        $entity->setInvoiceid($invoiceid); 
        $entity->setInvoiceitemsid($items); 
        $entity->setDescription($description); 
        $entity->setUnitPrice($unitprice); 
        $entity->setQuantity($quantity); 
        $entity->setlinetotal($linetotal); 
        $em->persist($entity);       
        $em->flush(); 
        $em->clear(); 

       } 
      }else{ 

        $items = $_POST['items']; 
        $description=$_POST['description']; 
        $unitprice=$_POST['unitprice']; 
        $quantity=$_POST['quantity']; 
        $linetotal=$_POST['linetotal']; 
        $entity->setInvoiceid($invoiceid); 
        $entity->setInvoiceitemsid($items); 
        $entity->setDescription($description); 
        $entity->setUnitPrice($unitprice); 
        $entity->setQuantity($quantity); 
        $entity->setlinetotal($linetotal); 
        $em->persist($entity);       
        $em->flush(); 
        $em->clear(); 
       } 

但是當控制器獲取值items2,內容描述2 ,unitprice2,quantity2,linetotal2不存在如何刪除此錯誤?當它獲得值如果items2不發佈然後它存儲沒有價值的項目,我的itemscounter值是6.

+0

你使用'$ form-> handleRequest($ request)'? – hcoat

+0

不,我不使用$ form-> handleRequest($ request) –

+0

它會爲你做大部分的工作。我會建議看看它。 – hcoat

回答

2

那麼你應該使用基本的PHP像isset。 但我想這是更多的問題,你的代碼的邏輯。你應該使用html名稱,如項目1 [說明],它很容易使用。

我清理了一下你的代碼。你不應該使用複製麪食

for($i=1; $i<=$itemscounter; $i++){ 

    if($i==1){ 
     $suffix= ''; 
    }else{ 
     $suffix = $i; 
    } 

    if(isset($_POST['items'.$suffix]) 
     && isset($_POST['description'.$suffix]) 
     ......) { 

     $items = $_POST['items'.$suffix]; 
     $description=$_POST['description'.$suffix]; 
     $unitprice=$_POST['unitprice'.$suffix]; 
     $quantity=$_POST['quantity'.$suffix]; 
     $linetotal=$_POST['linetotal'.$suffix];      


     $entity->setInvoiceid($invoiceid); 
     $entity->setInvoiceitemsid($items); 
     $entity->setDescription($description); 
     $entity->setUnitPrice($unitprice); 
     $entity->setQuantity($quantity); 
     $entity->setlinetotal($linetotal); 
     $em->persist($entity);       
     $em->flush(); 
     $em->clear(); 

}