在cakephp中,模型中的“hasMany”字段中有一个名为“exclusive”的选项。 文档说:
当exclusive设置为true时,递归模型删除使用deleteAll()执行删除操作 调用,而不是单独删除每个实体。这大大提高了性能,但可能不是 适合所有情况。
但现在还不是那么清楚。 我想知道这个选项究竟做了什么,如果我们不使用它会发生什么? 感谢。
答案 0 :(得分:0)
Say For Example,One Author有很多Books.So我们可以用$ hasMany关联的形式写这个,如下所示,
var $name = 'Author';
var $hasMany = array('Book' =>
array('className' => 'Book',
'conditions' => '',
'foreignKey' => 'author_id',
'dependent' => true,
'exclusive' => true
)
);
dependent:当dependent设置为true时,可以删除递归模型。在此示例中,Book记录将在删除其关联的作者记录时删除。
exclusive - 如果设置为true,则在一个SQL语句中删除所有关联的对象,而不运行beforeDelete回调。这极大地提高了性能,但可能并不适合所有情况。
现在只看数据库中的记录
authors table
===================
id name
===================
1 first author
2 second author
3 third author
书籍表
==================================
id title isbn author_id
==================================
1 abc 6416446846 1
2 xyz 3146354313 1
3 pqr 8945468485 2
4 fgh 6434164656 2
5 rtt 1215445644 3
现在,如果您删除任何作者记录,则该特定作者的所有相关图书也将被删除。