I am trying to allocate multiple DB rows into an Array.


foreach ($photos as $photos) { 

    $items = ['url' => $photos->location, 'src' => $photos->location, 'options' => array('title' => $photos->name)];

 } ?>

it loads but only loads the last img and shows it twice…

im guessing I need to allocate the array in a different way?

Thanks for your help in advanced

Change every "photos" except the first one to sometning else e.g. "photo".

Will test this later as having another glitch at the moment.


So, for some reason i just cannot work this out:


<?php foreach($photos as $photo) { 

    //$Filename = $photo->image_web_filename

    $items = [


        'url' => Yii::$app->params['uploadUrl'] . $photo->image_web_filename,

        'src' => Yii::$app->params['uploadUrl'] . 'thumb' . '/' . $photo->image_web_filename,

        'options' => array('title' => 'Camposanto monumentale (inside)')





<?= dosamigos\gallery\Gallery::widget(['items' => $items]); ?>



     * Lists all PhotoPhotos models.

     * @return mixed


    public function actionIndex()


        $searchModel = new PhotoPhotosSearch();

        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        $photos = PhotoPhotos::find()->all();

        return $this->render('index', [

            'searchModel' => $searchModel,

            'dataProvider' => $dataProvider,

            'photos' => $photos,



it is just returning the last image not them all… any help please :)

$items is an array of elements,

 $items [] = ['url' => $photos->location, 'src' => $photos->location, 'options' => array('title' => $photos->name)];

The problem is that you are defining the array on each iteration.

You need to append to the array instead, as Rahif points out.

Ah thank you! Always somthing so simple.

Thank you for your help!