gpt4 book ai didi

php - 为什么在 yii2 分页中克隆对象

转载 作者:可可西里 更新时间:2023-10-31 23:30:39 25 4
gpt4 key购买 nike

这里是pagination doc他们正在使用 $countQuery = clone $query;为什么?它在没有克隆的情况下工作,并产生与克隆相同的结果 sql 查询。请帮我找出不同之处。

最佳答案

优势clone在创建一个新对象时,所有属性都将被复制到新对象中而不是重置它们。这在您使用查询生成器时非常有用。在官方文档示例中,我们有:

$query = Article::find()->where(['status' => 1]);
$countQuery = clone $query;

如果您从 $query$countQuery 中获取转储,您可以看到,$countQuery 是一个新对象,就像 $query 并且它还有 status=>1。在这些情况下,我们使用 clone 有两个几乎相同的查询,但略有不同。因此,您可以从一个 Query Object 中获得多个行为。当您有复杂的查询构建器对象时,您可能需要与现有查询稍有不同,这将变得更加有用。例如,您需要有一个union。您不想重写您的 Query 对象,是吗?因此,最好的方法是从现有查询中获取克隆,然后更改其行为。

关于php - 为什么在 yii2 分页中克隆对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27776401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com