2016-07-29 113 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; 

     } 
    ], 

问题是当我循环通过名称。每个图像显示两次。有一些循环问题。任何1都可以帮我找到解决方案。谢谢

+0

什么是您getPictogramName()函数??? –

回答

1

如果你的网址表也有名字,那么你必须返回网址名称也。

尝试修改您的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; 
    }, 
],