Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yii2 display data using for each loop

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',
]);?>
like image 628
con322 Avatar asked Feb 19 '15 22:02

con322


2 Answers

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.

like image 76
soju Avatar answered Oct 17 '22 17:10

soju


if(!empty($st_data))
    {
        foreach($st_data as $row)
        {
            echo 'Country Name: '.$row['country_name'].'</br>';
            echo 'State Name: '.$row['state_name'].'</br>';
            echo 'City Name: '.$row['city_name'].'</br>';
            echo '</br>';
        }
        exit;
    }
like image 3
vishuB Avatar answered Oct 17 '22 18:10

vishuB