[英]Doctrine cascade delete query?
我正在使用以下查询来删除数据库中的国家/地区,但由于国家与城市之间存在一对多的关系,因此出现了外键错误。
我正在使用以下查询:
$cd = 1;
Doctrine_Core::getTable('country')->find($cd)->delete();
如果国家/地区没有子代,此查询会软删除,但如果国家/地区具有任何城市,则会给出错误信息。
我还完成了国家模型中的以下设置:
$this->hasMany('city', array(
'local' => 'id',
'foreign' => 'country_id',
'cascade' => 'delete'
));
请提出建议。
在BaseCity.php中,您应该与Country相关。 在:
$this->hasOne('Country', array(
...
添加此行:
"onDelete"=>"CASCADE"
删除国家/地区时,城市也会被删除。 如果要保留它们,放
"onDelete"=>"SET NULL"
我认为上述方法也是正确的,但我按以下方式解决了。
我这样将国家与城市联系起来:
$this->hasMany('city', array(
'local' => 'id',
'foreign' => 'country_id',
'cascade' => array(
0 => 'delete',
)));
在YAML文件中,我像这样添加了:级联:[删除]
而且有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.