繁体   English   中英

学说级联删除查询?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM