簡體   English   中英

如何在Yii2 ListView中呈現具有不同視圖的項目?

[英]How to render items with different views in Yii2 ListView?

我需要以不同的視角來顯示新聞。 現在,我使用以下代碼進行演示:

 <?= ListView::widget([
                   'dataProvider' => $dataProvider,
                   'itemView' => '_news',
                   'viewParams' => [
                       'fullView' => true,
                       'context' => 'main-page'
                   ]
               ]);
                ?>

我的問題是:前三個新聞顯示的圖像較大,另一個顯示的圖像較小。 分頁應該有效。 看這個例子 在此處輸入圖片說明

請幫我。

列表視圖的每個項目視圖都有一個名為$index的變量,可用於實現所需的結果。 _news.php中,您可以執行以下操作:

if($index < 3)
    $this->render('_news_big', ['model' => $model]);

else
    $this->render('_news_small', ['model' => $model]);

並有在_news_big.php大塊的實際代碼,並在_news_small.php小塊代碼。

另一種方法是將代碼放置在_news.php內的兩個塊中(盡管我不喜歡這種方法)

if($index < 3)
{
    //Code for big block
}
else
{
    //Code for small blocks
}

有關itemView的更多信息,請參考http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html#$itemView-detail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM