CakePhp 中的 unbindModel 调用.它是如何工作的?
unbindModel 在蛋糕中是如何发生的?
How does unbindModel happen in cake?
$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
我在一个函数的开头写了这个.但它仍然查询朋友"模型.在函数中间有一个对 paginate() 的调用.所以我认为分页器可能会生成查询.
I wrote this in the beginning of a function. But still it queries the 'Friend' model. There was a call to paginate() in the middle of the function. So I thought the paginator might be generating the queries.
我确实在 paginate 之前添加了一个 unbindModel 调用,现在它可以工作了.
I did added an unbindModel call just before paginate and it now works.
$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
$user = $this->paginate("User", array("User.first_name LIKE" => $user["User"]["first_name"]));
unbindModel 是否会解除每个查询的绑定?还是在整个函数调用过程中解除绑定?
Does unbindModel unbind every query? or does it unbind during the entire function call?
推荐答案
来自手册:
使用 bind- 和 unbindModel() 删除或添加关联仅适用于下一个模型操作,除非第二个参数已设置为 false
.如果第二个参数已设置为 false
,则绑定在请求的其余部分保持不变.
Removing or adding associations using bind- and unbindModel() only works for the next model operation unless the second parameter has been set to
false
. If the second parameter has been set tofalse
, the bind remains in place for the remainder of the request.
换句话说,在你 pagination()
或 find()
或对模型执行任何其他操作后,解除绑定将被逆转.
In other words, after you paginate()
or find()
or do anything else with the model, the unbinding will be reversed.
相关文章