Yii2 muestra varias imágenes en la fila de vista de cuadrícula
Quiero mostrar varias imágenes en una sola fila de vistas de cuadrícula. Por ejemplo: tengo la tabla A, la tabla B y la tabla C.
La tabla A tiene my_id.
En la Tabla B, my_id es la clave externa. Junto con my_id tiene c_id.
La tabla C tiene c_id que está en referencia en la tabla B.
La Tabla C también tiene una ruta de archivo para mostrar imágenes.
enTabla A yo tengomy_id
de la siguiente manera: 1, 2, 3, 4, 5, 6.
EnTabla B yo tengomy_id
como sigue. 1, 1, 1, 2, 3, 3.
EnTabla B tambien tengoc_id
como sigue. 1, 2, 3, 4, 5, 6.
En la tabla C, mis c_id son: 1, 2, 3, 4, 5, 6. y estos id tienen una ruta de archivo asociada a cada uno de ellos. Son diferentes imágenes.
Ahora mi vista de cuadrícula debería mostrar 3 imágenes diferentes paramy_id
debido a las restricciones de clave externa. pero muestra solo 1 imagen.
Mi código está abajo:
En mi modelo
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() ;
}
mi cuadrícula de archivo de índice ver código de imagen
[
'label' => 'Hazards',
'format' => 'raw',
'value' => function ($data) {
return Html::img($data->getPictogramUrl(), ['alt'=>'myImage','width'=>'20','height'=>'30']);
},
],
También estoy tratando de agregar una sugerencia de herramienta de arranque a esto ... la información sobre herramientas se muestra con éxito, pero creo que el bucle no se realiza de manera correcta, por lo que está repitiendo mis imágenes.
Aquí está mi código actualizado de 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;
}
],