我的Yii 2控制器中有自定义数组,我必须在列表视图中显示。
$arr = ['ABC.txt','DEF.txt','HKL.txt','ADS.txt','DDF.txt'];
//this array pass from controller to view
答案 0 :(得分:1)
使用PHP MAGIC:
$arr = ['ABC.txt','DEF.txt','HKL.txt','ADS.txt','DDF.txt'];
$formattedArray = [];
foreach($arr as $fileName) {
$formattedArray[] = ['name' => $fileName];
}
定义ArrayDataProvider
:
$dataProvider = new ArrayDataProvider([
'allModels' => $formattedArray,
]);
传递给视图:
return $this->render('yourView', ['dataProvider' => $dataProvider]);
在yourview.php中:
<?=
ListView::widget([
'dataProvider' => $dataProvider,
]);
?>
答案 1 :(得分:0)
渲染视图时,必须在此处发送此数组:
$this->render('yourView', ['arr' => $arr]);
然后,在视图中,您可以简单地预先处理此数组并在列表中显示。 另外,你可以指定你的$ arr - 例如:
/* @var $arr Array */