Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么是独家选择在hasMany?_Php_Cakephp_Cakephp 2.0 - Fatal编程技术网

Php 什么是独家选择在hasMany?

Php 什么是独家选择在hasMany?,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,在cakephp中,在模型的“hasMany”字段中有一个名为“exclusive”的选项。 文件说: 当exclusive设置为true时,递归模型删除将使用deleteAll()进行删除 调用,而不是分别删除每个实体。这会大大提高性能,但可能不会 适用于所有情况 但这并不清楚。 我想知道这个选项到底做了什么,如果我们不使用它会发生什么? 谢谢。比如说,一位作者有很多书。所以我们可以用$hasMany关联的形式来写,如下所示 var $name = 'Author'; va

在cakephp中,在模型的“hasMany”字段中有一个名为“exclusive”的选项。 文件说:

当exclusive设置为true时,递归模型删除将使用deleteAll()进行删除 调用,而不是分别删除每个实体。这会大大提高性能,但可能不会 适用于所有情况

但这并不清楚。 我想知道这个选项到底做了什么,如果我们不使用它会发生什么?
谢谢。

比如说,一位作者有很多书。所以我们可以用$hasMany关联的形式来写,如下所示

   var $name = 'Author';
       var $hasMany = array('Book' =>
        array('className' => 'Book',
            'conditions' => '',
            'foreignKey' => 'author_id',
            'dependent' => true,
            'exclusive' => true

        )
    );
dependent:当dependent设置为true时,可以删除递归模型。在本例中,当书籍记录的关联作者记录被删除时,书籍记录将被删除

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
现在,如果删除作者的任何记录,与该特定作者相关的所有书籍也将被删除