2016-04-26 6 views
0

Ich habe einen kleinen Klick-Tracker für E-Mail-Links in meiner Laravel 5.2 App erstellt.Warum funktioniert dieser Bild-Tracker nicht? Laravel

Ich verwende eine Zeichenfolge wie diese in meiner E-Mail-Ansicht;

Dann in meinem Controller, suche ich die erforderliche URL von der Tracker-ID (1 im obigen Fall). Dann erstelle oder aktualisiere ich einen Tracking-Datensatz mit URL und Benutzer. Zum Schluss leite ich die angeforderte URL um. Keine echte Magie, funktioniert so, wie ich es erwartet hatte.

public function track($id, $email){ 
    $track = Track::where('url', $id)->where('user', $email)->first(); 
    $url = TrackLink::where('id', $id)->first(); 

    if ($track){ 
     $track->count += 1; 
     $track->save(); 
    } else { 
     $track = new Track; 
     $track->count = 1; 
     $track->url = $id; 
     $track->user = $email; 
     $track->save(); 
    } 

    if ($url->type == 'user'){ 
     return redirect ($url->url.'/'.$email); //in cases where I want to append the email to the url 
    }else{ 
     if ($url->type == 'link') { 
      return redirect ($url->url); //in cases where I just need to redirect 
     }else{ 
      return redirect ($url->url); //this is the third case for images 
     } 
    } 

} 

aber ich versuche, das gleiche mit einem 1x1 Pixel png wollen öffnet zu verfolgen. Also verwende ich eine ähnliche Tracking-Zeichenfolge für die Img-Quelle. Dieser Teil funktioniert, indem er die Methode im Controller aufruft und den Track Record schreibt. Das Bild wird jedoch nicht angezeigt.

Ich habe es versucht;

return ($url->url); 

und

return redirect ($url->url); 

Weder erhalten die Bilddatei zu präsentieren. Was vermisse ich?

Danke!

+1

willkommen zu stackoverflow. Sie sollten Ihre Frage nicht mit einer Antwort ändern. Sie müssen Ihre eigene Antwort veröffentlichen. – Robert

+1

Fair genug. Ich wollte einfach nicht wie ein Dbag aussehen, der eine Frage beantwortet, die ich gestellt habe! – RushVan

Antwort

0

GELÖST

Das Problem mit dem if/else war. Die Extra-Bedingung wurde entfernt und die Weiterleitung war dann erreichbar und ordnungsgemäß ausgeführt.

Jetzt sieht so aus;

if ($url->type == 'user'){ 
     return redirect ($url->url.'/'.$email); 
    }else{ 
     return redirect ($url->url); 
    } 
Verwandte Themen