3 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
只知道clone是為了將“查詢總數(shù)”和后續(xù)的“獲取列表”查詢來(lái)分開(kāi),以免會(huì)有影響,但是至于直接用$query->count()是否會(huì)對(duì)后面的$query->xxx產(chǎn)生影響,貌似僅僅是只查詢count()的話是沒(méi)有影響的,所以這里clone感覺(jué)沒(méi)多大必要,不知道其他人怎么看?

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
這里的clone是復(fù)制對(duì)象,就是復(fù)制了一份$query對(duì)象,包含之前的屬性和方法,這里使用clone是為了避免后面的操作影響到這個(gè)$query對(duì)象。比如你后面有2個(gè)查詢都要用到$query對(duì)象,一個(gè)要加where條件,另一個(gè)不加條件,這時(shí)候clone的就有作用了
$countQuery = clone $query;
$countQuery->where(['xx'=>'xx']);
$countQuery2 = clone $query;
這時(shí)候去掉clone 直接使用$query,兩個(gè)查詢都會(huì)帶有這個(gè)條件,這明顯就不對(duì)了.
你提供的代碼里后續(xù)沒(méi)有要用到$query對(duì)象所以去掉直接使用也沒(méi)影響。
- 3 回答
- 0 關(guān)注
- 527 瀏覽
添加回答
舉報(bào)