Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 捕获symfony和条令中的完整性约束错误_Php_Symfony1_Doctrine - Fatal编程技术网

Php 捕获symfony和条令中的完整性约束错误

Php 捕获symfony和条令中的完整性约束错误,php,symfony1,doctrine,Php,Symfony1,Doctrine,我有两张桌子: 类别: |id | cat_name | | 1 | nameone | | 2 | nametwo | | 3 | namethree | 新闻: 我使用原则:生成模块后端类别,并且我有一个带有executeEdit、Update等的列表类别。如果我删除类别id 3-namethree,那么我会得到以下错误 SQLSTATE[23000]:完整性约束冲突:1451无法删除或删除 更新父行:外键约束失败 我如何确保如果我删除了类别3,那么类别3的所有新闻都会移动

我有两张桌子: 类别:

|id | cat_name  |
| 1 | nameone   |
| 2 | nametwo   |   
| 3 | namethree |
新闻:

我使用原则:生成模块后端类别,并且我有一个带有executeEdit、Update等的列表类别。如果我删除类别id 3-namethree,那么我会得到以下错误

SQLSTATE[23000]:完整性约束冲突:1451无法删除或删除 更新父行:外键约束失败


我如何确保如果我删除了类别3,那么类别3的所有新闻都会移动到类别2,例如不会出现错误?如何捕捉到这一点?

您必须为
新闻
配置表架构,以便在删除时使用
处理外键更改:要么“设置为null”,要么“设置为默认值”,要么“设置为特定值”,要么“删除”。虽然不确定您是否可以可变地执行此操作,但如果您仔细想想,这将是疯狂的:您拥有引用完整性正是因为您希望严格执行您的关系。如果删除类别行,则随机更改它们将完全与此相反

最好先
UPDATE
ing要修改的行,自己来正确处理这个问题

UPDATE News SET id_cat = 2 WHERE id_cat = 3;
DELETE FROM Category WHERE id = 3;
(我不知道适当的Symfony/条令方法会影响这一点。)

可用选项取决于数据库。您可以始终在DELETE CASCADE上说
,以删除所有相关行;其他选项可能对您可用,也可能不可用

UPDATE News SET id_cat = 2 WHERE id_cat = 3;
DELETE FROM Category WHERE id = 3;