2017-08-11 13:18:25 4555次浏览 4条回答 0 悬赏 10 金钱
use yii\data\Pagination;
$query = Article::find()->where(['status' => 1]);
$countQuery = clone $query;
$pages = new Pagination(['totalCount' => $countQuery->count()]);
$models = $query->offset($pages->offset)
  ->limit($pages->limit)
  ->all();
return $this->render('index', [
  'models' => $models,
  'pages' => $pages,
]);

分页的时候代码网上都要加$countQuery = clone $query;这句 ,具体作用是什么,我去掉也不影响.有什么特别作用吗??

  • 回答于 2017-08-11 13:52 举报

    就类似与复制的作用
    就比如new了一个对象,你用clone,可以复制这个对象,可以继续使用

    3 条回复
    回复于 2017-08-11 13:54 回复

    这种大多用于对象循环操作的时候,避免对象已经用过一次无法使用,采用clone复制可以多次使用

    回复于 2017-08-11 14:02 回复

    对象已经用过一次无法使用,这种情况什么时候回发生??

    回复于 2017-08-11 15:13 回复

    比如添加操作,当save或者insert完之后就不能用了。就需要重新new对象,这时候clone就有用处了

  • 回答于 2017-08-14 10:09 举报

    循环的时候最好用上

  • 回答于 2017-08-15 16:40 举报

    我能告诉你的就是不加 也是可以的

  • 回答于 2017-09-19 15:03 举报

    循环时,如果里面有多次操作query对象就需要用克隆

您需要登录后才可以回答。登录 | 立即注册
xyf90314
副总裁

xyf90314

注册时间:2015-03-04
最后登录:2023-03-13
在线时长:95小时23分
  • 粉丝21
  • 金钱5257
  • 威望40
  • 积分6607

热门问题