早上好,
我正在寻找一种从表中级联删除数据的解决方案。
我有一个Orders表:
class Order
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups({"orderGET", "orderDELETE", "orderPostCustomer"})
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $firstname;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $lastname;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $email;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $phone;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $address;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $address1;
/**
* @ORM\Column(type="integer")
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $zipcode;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGET", "orderPostCustomer", "orderTracking"})
*/
private $city;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $country;
/**
* @ORM\Column(type="string", length=2000, nullable=true)
* @Groups("orderGetItem")
*/
private $urlTracking;
/**
* @ORM\Column(type="string", length=2000, nullable=true)
* @Groups("orderGetItem")
*/
private $urlTracking;
/**
* @ORM\Column(type="integer")
* @Groups({"orderGetItem", "orderPostCustomer"})
*/
private $idOrderMerchant;
/**
* @ORM\Column(type="string", length=50, nullable=true)
* @Groups({"orderGET"})
*/
private $idTrackingMerchant;
/**
* @ORM\Column(type="string", length=50, nullable=true)
* @Groups("orderGET")
*/
private $idTracking;
/**
* @ORM\OneToMany(targetEntity="App\Entity\OrderHistory", mappedBy="orderId", cascade={"persist", "remove"})
* @Groups({"orderGetItem", "orderTracking"})
*/
private $orderHistories;
/**
* @ORM\OneToOne(targetEntity="App\Entity\OrderHistory", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="last_history_id", referencedColumnName="id")
* @Groups({"orderGetCollection", "orderTracking"})
*/
private $lastHistory;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Customer", inversedBy="orders")
* @ORM\JoinColumn(nullable=true)
* @Groups({"orderGET", "orderTracking"})
*/
private $customer;
/**
* @ORM\Column(type="integer")
* @Groups({"orderGetItem", "orderPostCustomer"})
*/
private $weightMerchant;
/**
* @ORM\Column(type="integer", nullable=true)
* @Groups("orderGetItem")
*/
private $weightReal;
/**
* @ORM\Column(type="integer")
* @Groups({"orderGetItem", "orderPostCustomer", "orderTracking"})
*/
private $packages;
/**
* @ORM\Column(type="datetime")
* @Groups("orderGET")
*/
private $dateAdd;
/**
* @ORM\Column(type="datetime")
* @Groups("orderGET")
*/
private $dateUpd;
/**
* @ORM\OneToMany(targetEntity="App\Entity\OrderDetail", mappedBy="orderId", cascade={"persist", "remove"})
* @Groups({"orderGetItem", "orderPostCustomer"})
*/
private $orderDetails;
}
我和几个表有关系:order_history,order_details。
我希望删除订单时删除其他表(order_history和order_details)中的订单信息。我尝试通过添加参数“级联”等...。但是它不起作用,我遇到此错误:
“ hydra:description”:“执行'从order_history中删除ID =吗?带有参数[7]:\ n \ nSQLSTATE [23000]:违反完整性约束:1451无法删除或更新父行:外键约束失败(
db_api_dev
。order
,CONSTRAINT {{1} }外键(order_ibfk_3
)参考last_history_id
(order_history
))“,
感谢您的帮助