Yii2 zeigt mehrere Bilder in der Rasteransicht an

Ich möchte mehrere Bilder in einer einzelnen Zeile mit Rasteransichten anzeigen. Zum Beispiel: Ich habe Tabelle A, Tabelle B und Tabelle C.

Tabelle A hat meine_ID.

In Tabelle B my_id ist der Fremdschlüssel. Zusammen mit my_id hat es c_id.

Tabelle C hat c_id, auf die in Tabelle B verwiesen wird.

Tabelle C verfügt auch über einen Dateipfad zum Anzeigen von Bildern.

imTabelle A ich habemy_id wie folgt: 1, 2, 3, 4, 5, 6.

ImTabelle B ich habemy_id wie folgt. 1, 1, 1, 2, 3, 3.

ImTabelle B ich habe auchc_id wie folgt. 1, 2, 3, 4, 5, 6.

In Tabelle C sind meine c_ids: 1, 2, 3, 4, 5, 6. Diesen IDs sind Dateipfade zugeordnet. Sie sind verschiedene Bilder.

Nun sollte meine Gridview 3 verschiedene Bilder für @ anzeigmy_id wegen der Fremdschlüsselbeschränkungen. Es wird jedoch nur 1 Bild angezeigt.

Mein Code ist unten:

In meinem Modell

 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()  ;
}

meine Indexdatei Gitteransicht Bildcode

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

Ich versuche auch, diesem Tooltip einen Bootstrap-Tooltip hinzuzufügen. Der Tooltip wird erfolgreich angezeigt, aber ich denke, dass die Schleifen nicht korrekt ausgeführt werden und meine Bilder wiederholt werden.

hier ist mein aktualisierter Gridview-Code.

 [
        '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;

        }
        ],

Antworten auf die Frage(2)

Ihre Antwort auf die Frage