Yii2 display data using for each loop

loops, model-view-controller, mysql, php, yii2

Solution

No need to use ListView here, you should simply try :

foreach ($dataProvider->models as $model) {
    echo "addMarker({$model->lat_field}, {$model->lon_field});";
}

If you really want to use ListView, you could simply edit `_index` view file.

Problem

Using yii2 I have created a Model and CRUD using gii. I want to use a foreach or while loop in my VIEW to display the data in the following format For each row in database table ``` echo("addMarker($lat_field, $lon_field);\n"); ``` I have an index page which is rendered using the following controller action. ``` public function actionIndex() { $this->layout = 'directory'; $searchModel = new ShopDirectorySearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } ``` I can use the following to display the data using listview which displays all the data/rows within database however it has html around it and obviously isn't outputted in the format I wish it to be. ``` <?= ListView::widget([ 'dataProvider' => $dataProvider, 'itemOptions' => ['class' => 'col-xs-6 col-sm-3'], 'itemView' => '_index', ]);?> ```

Original source