Untuk menambahkan parameter pada URL Pagination ListView seperti manambahkan hashtag # , biasanya digunakan untuk menampilkan bagian suatu badan halaman web dengan ditandai dengan hashtag, misal : #faq , jika pada url ditulis hashtag tersebut, halaman web akan menuju bagian dari salah satu halaman web tersebut.
Bentuk umum url pagination : http://www.domain.com/site/index?page=2&per-page=4
Kemudian kita ingin url dengan tambahan parameter :
Contoh: http://www.domain.com/site/index?page=2&per-page=4#faq
Terlihat ada hashtag #faq diakhir url , dengan maksud akan menuju bagian badan halaman dengan ditandai hashtag faq.
Script manambahkan paramater tersebut sbb:
<?php
use yii\data\ActiveDataProvider;
use app\modules\admin\models\Faqs;
use yii\widgets\ListView;
$getParams = ['#'=>'faq'];
if(isset($_GET)){
foreach($_GET as $getKey => $getValue){
$getParams[$getKey] = $getValue;
}
}
$provider = new ActiveDataProvider([
'query' => Faqs::find(),
'pagination' => [
'pageSize' => 4,
'params' => $getParams
],
]);
?>
Kemudian pada widget ListVew sebagai berikut:
<?= ListView::widget([
'dataProvider' => $provider,
'layout' => "{items}\n{pager}\n",
'itemView' => function ($model, $key, $index, $widget) {
return $this->render('_list_item_faq',['model' => $model]);
},
'itemOptions' => [
'tag' => false,
],
'pager' => [
'class' => \yii\bootstrap5\LinkPager::class,
'options' => [
'class' => 'pagination',
]
],
]);
?>
Sekian.