在CakePhp中调用unbindModel.它是如何工作的?

zer*_*uan 8 php cakephp

unbindModel是如何在蛋糕中发生的?

$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
Run Code Online (Sandbox Code Playgroud)

我在函数的开头写了这个.但它仍在查询"朋友"模型.在函数中间调用了paginate().所以我认为分页器可能正在生成查询.

我在paginate之前添加了一个unbindModel调用,它现在可以工作了.

$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
$user = $this->paginate("User", array("User.first_name LIKE" => $user["User"]["first_name"]));
Run Code Online (Sandbox Code Playgroud)

unbindModel是否取消绑定每个查询?或者在整个函数调用期间解除绑定?

dec*_*eze 12

从手册:

除非已将第二个参数设置为,否则使用bind-和unbindModel()删除或添加关联仅适用于下一个模型操作false.如果第二个参数已设置为false,则绑定将保留在请求的其余部分.

换句话说,在你paginate()或者find()对模型做任何其他事情之后,解除绑定将被颠倒.