2016-07-29 95 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; 
    }, 
],