2015-08-22 55 views
4

我想從數據庫獲取數據使用限制12,20在yii2中使用極限範圍?

這裏是我的代碼:

$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(); 

這是行不通的。它給我所有的行。我也試過- >限制([12,20]),無法正常工作。

但是,當我使用限制(12)然後我得到12行。

我想得到限制行12,20。在我的這段代碼中,我該怎麼做?

回答

11

試試這個:

$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)

獲取更多信息:

2

您可以使用Active紀錄做

$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(); 
+0

您的模型必須擴展\ yii \ db \ ActiveRecord –