从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 ); –