Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pagination yii2奇数/偶数列表视图,具有加载更多分页_Pagination_Lazy Loading_Yii2_Yii Extensions_Yii Components - Fatal编程技术网

Pagination yii2奇数/偶数列表视图,具有加载更多分页

Pagination yii2奇数/偶数列表视图,具有加载更多分页,pagination,lazy-loading,yii2,yii-extensions,yii-components,Pagination,Lazy Loading,Yii2,Yii Extensions,Yii Components,第一次数据加载很好,但当我点击LoadMore时,我的第二页数据甚至只进入div。 我正在生成如下列表: <div class="odd"> <items>item1</items> <items>item3</items> <items>item5</items> <items>item7</items> </div> <div cla

第一次数据加载很好,但当我点击LoadMore时,我的第二页数据甚至只进入div。 我正在生成如下列表:

<div class="odd">
    <items>item1</items>
    <items>item3</items>
    <items>item5</items>
    <items>item7</items>
</div>

<div class="even">
    <items>item2</items>
    <items>item4</items>    
    <items>item6</items>
    <items>item8</items>
</div>

项目1
项目3
项目5
项目7
项目2
项目4
项目6
项目8
使用此自定义ListView类:

class ListViewOdd extends ListView
{
public function renderItems()
    {
        $models = $this->dataProvider->getModels();
        $keys = $this->dataProvider->getKeys();
        $rowsOdd = $rowsEven = [];
        foreach (array_values($models) as $index => $model) {
            if ($index%2 == 0) {
                 $rowsOdd[] = $this->renderItem($model, $keys[$index], $index);
            } else {
                 $rowsEven[] = $this->renderItem($model, $keys[$index], $index);
            }
        }
        return '<div class="odd">'.implode($this->separator, $rowsOdd) . '</div><div class="even">'.implode($this->separator, $rowsOdd) .'</div>'; // replace <div> to Html::tag('div', ...)
    }
}


echo ListViewOdd::widget([
    'dataProvider' => $dataProvider,
    'itemView' => '_post',

]);
类ListViewOdd扩展ListView
{
公共函数renderItems()
{
$models=$this->dataProvider->getModels();
$keys=$this->dataProvider->getKeys();
$rowsOdd=$rowsEven=[];
foreach(数组_值($models)为$index=>$model){
如果($index%2==0){
$rowsOdd[]=$this->renderItem($model,$keys[$index],$index);
}否则{
$rowsEven[]=$this->renderItem($model,$keys[$index],$index);
}
}
返回“”。内爆($this->separator,$rowsOdd)。“”。内爆($this->separator,$rowsOdd)。“”;//替换为Html::tag('div',…)
}
}
echo ListViewOdd::小部件([
“dataProvider”=>$dataProvider,
“项目视图”=>“\u post”,
]);
但加载更多分页,而不是将数据再次拆分为奇数/偶数列表作为我的第一个数据列表

我并没有从控制器和操作传递任何信息,我正在使用模型获取数据提供程序

<?php echo ListViewOdd::widget([ 
'dataProvider' => Posts::getCommonListData($industry,'user','engage',0),
            'itemOptions' => ['class' => 'item post-item'],
            'summary' => '',
            'id' => 'my-listview-id',
            'itemView' => '_Posts',
            'viewParams' => [
                  'fullView' => true,
                ],
            'pager' => [
            'class' => \app\vendor\kop\y2sp\ScrollPager::className(),
            //'negativeMargin' => '200',
            'triggerText' => 'Load More',
            //'triggerOffset' => 3,
            'noneLeftText' => '',
            ],  
        ]);

getting output like this

<div class="odd">
    <items>item1</items>
    <items>item3</items>
    <items>item5</items>
    <items>item7</items>
</div>

<div class="even">
    <items>item2</items>
    <items>item4</items>    
    <items>item6</items>
    <items>item8</items>
    <items>item9</items>
    <items>item10</items>    
    <items>item11</items>
    <items>item12</items>
</div>

方法更改
渲染图

return '<div class="odd">'.implode($this->separator, $rowsOdd) . '</div><div class="even">'.implode($this->separator, $rowsEven) .'</div>';
返回“”。内爆($this->separator,$rowsOdd)。“”。内爆($this->separator,$rowsEven)。“”;
错误是“”。内爆($this->separator,$rowsOdd)。“”。
Div是
偶数
,但数据来自
$rowsOdd
:)

请显示屏幕截图。和显示控制器操作。添加了更多详细信息以获得清晰的想法@vitalik_74Yes我已经更改了此选项,但仍然得到相同的输出返回“”。内爆($this->separator,$rowsOdd)。“”。内爆($this->separator,$rowsEven)。“”;