it-swarm.com.de

Grenzbereich in yii2 verwenden?

Ich möchte Daten von db mit limit 12,20 erhalten. 

Hier ist mein Code:

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

Es funktioniert nicht. Es gibt mir alle Reihen. Ich habe auch -> limit ([12,20]) ausprobiert und funktioniert nicht. 

Aber wenn ich limit (12) benutze, bekomme ich 12 Reihen. 

Ich möchte Reihen in limit 12,20 erhalten. Was muss ich dafür in meinem Code tun?

7
unknownbits

Versuche dies:

$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() gibt den Startpunkt an und limit() gibt die Anzahl der Datensätze an. Wenn Sie Datensätze zwischen 12 und 20 wünschen, verwenden Sie limit(8).

Für mehr Information:

18
Insane Skull

sie können mit Active Record tun

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