如何在symfony中删除未定义的变量名?

时间:2013-10-11 03:23:21

标签: php symfony

我在symfony和控制器中创建一个表单我得到了post值,但是当我得到值时,如果变量不存在则显示未定义的变量,这是我的控制器:

 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,description2,unitprice2,quantity2,linetotal2不存在时如何删除此错误?当items2没有发布时它获得值然后它不存储项目中的值,我的itemscounter值为6。

1 个答案:

答案 0 :(得分:2)

那么你应该使用像isset这样的基本php。 但我想这更像是代码逻辑的问题。你应该使用项目1 [描述]等html名称,它很容易使用。

我清理了一下你的代码。你不应该使用复制意大利面

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();

}