簡體   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