Yii2 отображать несколько изображений в строке gridview

Я хочу отображать несколько изображений в виде сетки в одной строке. Например: у меня есть таблица A, таблица B и таблица C.

Таблица A имеет my_id.

В таблице B my_id - это внешний ключ. Наряду с my_id у него есть c_id.

Таблица C имеет c_id, который указан в таблице B.

Таблица C также имеет путь к файлу для отображения изображений.

вТаблица А я имеюmy_id следующим образом: 1, 2, 3, 4, 5, 6.

ВТаблица Б я имеюmy_id следующее. 1, 1, 1, 2, 3, 3.

ВТаблица Б у меня тоже естьc_id следующее. 1, 2, 3, 4, 5, 6.

В таблице C мои c_id: 1, 2, 3, 4, 5, 6. и эти идентификаторы имеют путь к файлу, связанный с каждым из них. Это разные образы.

Теперь мой gridview должен отображать 3 разных изображения дляmy_id из-за ограничений внешнего ключа. но он отображает только 1 изображение.

Мой код ниже:

В моей модели

 public function getPictogramsID()
{
    $pictogramsID = SdsrefGhsPictograms::find()->where(['sdsref_id' => $this->sdsref_id])->all();
    foreach ($pictogramsID as $picID){
        return $picID->pictogram_id;
    }
}



 public function getPictogramPath()
{


     $pictogramsID = GhsPictogram::find()->where(['pictogram_id' => $this->getPictogramsID()])->all();
    foreach ($pictogramsID as $picID){
        $pic = $picID->pictogram_filepath;
    }
    return $pic;

}



public function getPictogramUrl()
{

    //var_dump($this->getPictogramPath()); exit();
    return \Yii::$app->request->BaseUrl.'/web'.$this->getPictogramPath()  ;
}

моя индексная сетка просмотр кода изображения

 [
        'label' => 'Hazards',  
        'format' => 'raw',   
        'value' => function ($data) {
                return Html::img($data->getPictogramUrl(), ['alt'=>'myImage','width'=>'20','height'=>'30']); 
            },
        ],   

Я также пытаюсь добавить подсказку начальной загрузки к этому .. подсказка отображается успешно, но я думаю, что зацикливание выполнено неправильно, поэтому оно повторяет мои изображения.

вот мой обновленный код gridview.

 [
        'label' => 'Hazards',  
        'format' => 'raw',   
        'value' => function ($data) {
             $images = '';

    // append all images
            foreach($data->getPictogramName() as $name)     
                foreach ($data->getPictogramUrl() as $url)                   
                $images = $images.Html::img($url,['alt'=>'','width'=>'30','height'=>'30', 'data-toggle'=>'tooltip','data-placement'=>'left','title' => $name ,'style'=>'cursor:default;']);
            return $images;

        }
        ],

Ответы на вопрос(1)

Ваш ответ на вопрос