-1

我在 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。

4

1 回答 1

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

} 
于 2013-10-11T07:05:39.347 回答