在yii2中使用限制范围?

时间:2015-08-22 12:05:23

标签: php mysql database yii yii2

我想使用 limit 12,20 从db获取数据。

这是我的代码:

  $Query = new Query;
   $Query->select(['um.id as USERid', 'um.first_name', 'um.last_name',   'um.email', 'COUNT(g.id) as guestCount'])
 ->from('user_master um')
 ->join('LEFT JOIN', 'guest g', 'g.user_id = um.id')
 ->limit(12,20)
 ->groupBy('um.id')
 ->orderBy(['um.id' => SORT_DESC]);

  $command = $Query->createCommand();
  $evevtsUserDetail = $command->queryAll(); 

它不起作用。它给了我所有的行。我也试过 - > limit([12,20]),不行。

但是当我使用 limit(12)时,我会得到12行。

我希望获得限制12,20 中的行。在我的代码中我应该怎么做?

2 个答案:

答案 0 :(得分:20)

试试这个:

$Query = new Query;
$Query->select(['um.id as USERid', 'um.first_name', 'um.last_name','um.email','COUNT(g.id) as guestCount'])
->from('user_master um')
->join('LEFT JOIN', 'guest g', 'g.user_id = um.id')
->limit(20)
->offset(12)
->groupBy('um.id')
->orderBy(['um.id' => SORT_DESC]);

Offset()指定起点,limit()指定记录数。如果您想要1220之间的记录,请使用limit(8)

了解更多信息:

答案 1 :(得分:2)

你可以使用Active record

$model = YourModel::find()->where('user_id = :user_id', [':user_id' => \Yii::$app->user->id])->limit(12,20)->all();

OR

$model = YourModel::find()->where('user_id = :user_id', [':user_id' => \Yii::$app->user->id])->with(['job','job.jobRecipient'])->limit(12)->all();