2015-10-06 66 views
2

我需要將自定義數據屬性設置爲ListView元素。例如,我嘗試獲取當前的DataProvider模型ID。但我仍然認爲錯誤「htmlspecialchars()期望參數1是字符串,對象給出」。請檢查我的代碼並遏制我 - 我該如何獲得這個ID?Yii2 ListView基於currend DP模型的自定義數據屬性

<?= ListView::widget([ 
      'dataProvider' => $photoProvider, 
      'id' => 'photo-list', 
      'itemView' => '_photoListItem', 
      'viewParams' => [ 
       'fullView' => true, 
      ], 
      'options' => [ 
       'tag' => 'ul', 
       'class' => 'list-view' 
      ], 
      'itemOptions' => [ 
       'tag' => 'li', 
       'class' => 'item', 
       'data' =>[ 
        'test' => function ($model, $key, $index, $widget) { 
         return Html::encode($model->id); 
        } 
       ] 
      ], 
      'pager' => [ 
       'class' => ScrollPager::className(), 
       'container' => '#photo-list', 
       'item' => '.item', 
       'triggerText' => '<div class="btn more">Load More</div>', 
       'noneLeftText' => '', 
       'triggerOffset' => 2, 
       'negativeMargin' => 200 
      ], 
      'layout' => "{items}\n{pager}", 
     ]); 
     ?> 

回答

1

這是不可能在ListView,根據doc

'data' => [ 
    'test' => function ($model, $key, $index, $widget) { 
    return Html::encode($model->id); 
    } 
] 

這裏不能使用的功能。只允許靜態值。

或者,您可以在您的_photoListItem視圖文件的標記中提供這些屬性。

+0

謝謝!我試圖設置它在2天:( – DrHolera

+0

@ДимаПолхов它嘗試了3天后開始工作!;-)不,我知道,有類似的東西,這種方式工作。如果這些數據屬性可以填充你如何嘗試它,那麼IMO會很有用。你可以在github上爲此做出功能請求。 – robsch