2016-07-29 42 views
0

Dies ist mit meiner vorherigen Frage verwandt. Ich möchte, dass ein QuickInfo-Titel dynamisch für meine Bilder angezeigt wird, wenn ich den Mauszeiger über die Bilder halte. Ich habe die Beziehungen in meiner vorherigen Frage Click here erklärt. Nun möchte ich diesen Bildern einen Daten-Tool-Tipp hinzufügen. Mein Code ist unterYii2 Daten Tooltipp für Bilder in einer Rasteransicht

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

     } 
    ], 

Das Problem ist, wenn ich den Namen durchlaufen. Jedes Bild wird zweimal angezeigt. Es gibt ein Problem mit der Schleife. Kann mir irgendjemand helfen, die Lösung zu finden? Danke

+0

Was ist Ihre getPictogramName() Funktion tut ??? –

Antwort

1

Wenn Ihre URL-Tabelle auch den Namen hat, dann müssen Sie URL auch mit Namen zurückgeben.

Versuchen Sie, Ihre getPictogramUrl-Funktion wie unten im Snippet zu ändern.

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

dann Ihrer Ansicht nach

[ 
    '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; 
    }, 
],