Ich habe einen typischen Listview-Widget in einer Ansicht wie folgt:Yii2 erstes und die letzte Element in der Listview
public function actionView($id)
{
$model = $this->findModel($id);
$dataProvider = new \yii\data\ActiveDataProvider(['query' => \app\models\Verses::find()->where(['sura_id' =>$id])->with('sura')]);
return $this->render('view', [
'model' => $model,
'dataProvider' => $dataProvider,
]);
}
In der Ansicht eine Liste von Verses
Modell wiedergegeben wird und der Pager des Listview ist ebenfalls verfügbar.
Ich möchte einige Details zum Seitentitel hinzufügen. Diese Details sind Daten aus dem ersten und letzten Datensatz des Modells Verses
, das in der Liste wiedergegeben wird.
Ich habe versucht, min()
und max()
PHP-Funktionen zu verwenden, um die ersten und die letzten Datensätze in der Ansicht wie folgt zu erhalten:
$min = min($model->verses);
echo $min->verse_id;
Allerdings ist es das ultimative erste Datensatz in Bezug auf lose Seite der aktuellen Pager zurück . Mit anderen Worten, es gibt den verse_id
Wert des ersten Elements der Liste nicht zurück.
Gibt es eine Möglichkeit, den ersten, letzten oder sogar einen bestimmten n-ten Eintrag des ListView zu erhalten?
Wunderbar, aber in Paging sollte 'getTotalCount()' durch 'getCount()' ersetzt werden und das Modell wird von 'getModels()' wie folgt abgerufen: '$ s = $ dataProvider-> getModels(); $ start = $ s [0] -> Vers_id; $ end = $ dataProvider-> getCount() - 1 + $ start; '. [** Refrence **] (http://www.yiiframework.com/doc-2.0/yii-data-activedataprovider.html) – SaidbakR
@seems .. Ich habe die Antwort aktualisieren .. – scaisEdge
'totalCount' wird zurückgeben die Gesamtzahl der Datensätze des Modells, unabhängig von der aktuellen Seite. 'GetCount' ist hier korrekt. – SaidbakR