>我在 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();
}
但是当控制器获取值 item2,描述 2,单价 2,数量 2,行总计 2 不存在时 如何删除此错误?当它获得值时,如果 items2 未发布,则它在项目中不存储任何值,我的 items计数器值为 6。
好吧,
你应该使用像isset这样的基本php。但我想这更多的是你的代码逻辑问题。你应该使用HTML名称,如items1[description],它很容易使用。
我清理了一下你的代码。你不应该使用复制意大利面
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();
}