でYii2次のように私は、ビュー内の典型的なリストビューウィジェットを持っている:Verses
モデルの最初と最後の項目の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,
]);
}
ビューでリストがレンダリングされ、ListViewコントロールのページャも利用可能です。
私は、ページのタイトルにいくつかの詳細を追加したいです。これらの詳細は、リストにレンダリングされたVerses
モデルの最初と最後のレコードのデータです。
min()
と
max()
PHPの関数を使用しようとしました
:
$min = min($model->verses);
echo $min->verse_id;
しかし、それは現在のページャーページレスに関する究極の最初のレコードを返します。 。つまり、リストの最初の項目の値はverse_id
ではありません。
リストビューの、最初の最後、あるいは特定のn番目の項目を取得する方法はありますか?
素晴らしいですが、ページングでは、 'getTotalCount()'は 'getCount()'に置き換えられ、モデルは 'getModels()'によって次のように取得されます: '$ s = $ dataProvider-> getModels(); $ start = $ s [0] - > verse_id; $ end = $ dataProvider-> getCount() - 1 + $ start; '。 [** Refrence **] – SaidbakR
@seems ..答えを更新しました。 – scaisEdge
'totalCount'が返されます現在のページに関係なく、モデルのレコードの合計数。ここで 'getCount'を使うのは正しいです。 – SaidbakR