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