從BD中擦除某些東西時出現問題。
問題是,它不僅刪除了我查找的對象(使用findOneBy),而且還刪除了與委託人id相關的所有對象。
// ---控制器
$new = $this->getDoctrine()->getManager();
$OBJcar = $new->getRepository('SomeOtherBundle:CarEntityClass')
->findOneBy(array('idOwner' => $idowner, 'idCar' => $idcar));
if($OBJcar){
$new->remove($OBJcar);
$new->flush();
$msj="The car for an specific owner has been erased.";
}
// ---探查(查詢)
"START TRANSACTION"
Parameters: { }
Time: 0.22 ms
DELETE FROM schema.CarTable WHERE id_owner = ?
Parameters: ['123456']
Time: 0.63 ms
"COMMIT"
Parameters: { }
Time: 0.63 ms
如何刪除一行我從數據庫得到些什麼?
一切都看起來正確..你不是意外地在你的配置中的任何地方使用'cascade remove'或'cascade all',對嗎? –
我在桌上有一個複合主鍵。的關係是這樣的: CREATE TABLE schema.car ( id_car BIGINT NOT NULL, id_owner BIGINT NOT NULL, 約束car_pkey PRIMARY KEY(id_car,id_owner), 約束car_person_fk外鍵(id_owner) 參考schema.persons (ID)MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, 約束car_type_fk外鍵(id_car) 參考schema.cartype(ID)MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE ); –