CakePHP 2.5.4中的关联删除
我在数据库元素和节中有2个实体 1节有0-N个元素,因此在元素表中我有一个外键CakePHP 2.5.4中的关联删除,php,cakephp,Php,Cakephp,我在数据库元素和节中有2个实体 1节有0-N个元素,因此在元素表中我有一个外键 CONSTRAINT `elements_sections` FOREIGN KEY (`section_id`) REFERENCES `sections` (`id`) ON UPDATE CASCADE ON DELETE CASCADE Element Model.php具有以下特性: public $belongsTo = array( 'Section' => array(
CONSTRAINT `elements_sections` FOREIGN KEY (`section_id`) REFERENCES `sections` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
Element Model.php具有以下特性:
public $belongsTo = array(
'Section' => array(
'className' => 'Section',
'foreignKey' => 'section_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
在模型部分,我有:
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->Element->delete($this->data)
一个详细的例子:
第20节->要素400
第3节->要素20
如果我删除元素400,那么元素20也会被删除
我想我缺少一个配置参数或一些
提前感谢。对于可能面临同样问题的人,这可能会有所帮助: Model::delete()可以删除多条记录
[
'id' => 1,
'category_id' => 3,
'price' => 10000,
]
将产生
DELETE FROM elements WHERE id IN (1, 3, 10000).
对于可能面临同样问题的人来说,这可能会有所帮助: Model::delete()可以删除多条记录
[
'id' => 1,
'category_id' => 3,
'price' => 10000,
]
将产生
DELETE FROM elements WHERE id IN (1, 3, 10000).