2016-07-29 8 views
0

Это связано с моим предыдущим вопросом. Я хочу, чтобы заголовок подсказки отображался динамически для моих изображений, когда я наводил курсор на изображения. Я объяснил отношения в моем предыдущем вопросе Click here. Теперь я хочу добавить наконечник инструмента данных к этим изображениям. Мой код нижеYii2 наконечник инструмента для изображений в виде сетки

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

     } 
    ], 

Проблема в том, когда я прокручиваю имя. Каждое изображение отображается дважды. Возникает проблема с циклом. Может any1 помочь мне найти решение. Спасибо

+0

Что ваша функция getPictogramName() делает ??? –

ответ

1

Если ваша таблица URL также имеет имя, вам также нужно вернуть URL-адрес с именем.

Попробуйте изменить функцию getPictogramUrl, как показано ниже.

public function getPictogramUrl() 
{ 
    $url = []; 
    foreach($this->getPictogramPath() as $path): 
     $url[] = [\Yii::$app->request->BaseUrl.'/web'.$path,$this->name]; 
    endforeach; 
    return $url; // returning al urls 
} 

затем на ваш взгляд

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

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