我在数据库Element和Section中有2个实体。
1节有0-N元素所以在元素表中我有一个外键
CONSTRAINT `elements_sections` FOREIGN KEY (`section_id`) REFERENCES `sections` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
元素模型.php有这个:
public $belongsTo = array(
'Section' => array(
'className' => 'Section',
'foreignKey' => 'section_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
在Section模型中我有:
public $hasMany = array(
'Element' => array(
'className' => 'Element',
'foreignKey' => 'section_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
但是,当我删除ID = X的部分的元素时,所有这些代码看起来都很好,如果有一个ID = X的元素(在任何其他部分中),该元素也被删除。这是我在整个应用程序中使用的代码,但只是失败了。 $ this-> data是Element对象。
$this->Element->delete($this->data)
一个详细的例子:
第20节 - >元素400 第3节 - >元素20
如果删除元素400,则元素20也将被删除。
我想我错过了一个配置参数或一些。
提前致谢。
答案 0 :(得分:0)
对于可能面临同样问题的人来说,这可能有所帮助:
Model :: delete()可以删除多条记录。
DELETE FROM elements WHERE id IN (1, 3, 10000).
将生成
10-00-000-000000