我在Laravel 5.2应用程序中为电子邮件链接创建了一个小型点击跟踪器。
我在电子邮件视图中使用这样的字符串;
a href="http://example.com/tracker/1/{{ $slug }}"
然后在我的控制器中,我通过跟踪器ID(上例中为1)查找所需的URL。然后,我使用URL和用户创建或更新跟踪记录。最后,我重定向到请求的URL。没有真正的魔法,就像我预期的那样有效。
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
}
}
}
但是,我试图用1x1像素png来跟踪打开。所以,我正在为img src使用类似的跟踪字符串。该部分的作用在于它确实调用控制器中的方法并编写跟踪记录。但是,图像不会显示。
我试过了;
return ($url->url);
和
return redirect ($url->url);
两者都没有显示图像文件。我错过了什么?
谢谢!
答案 0 :(得分:0)
<强>解决强>
问题在于if / else。删除了额外条件,然后可以访问重定向并正确执行。
现在看起来像这样;
if ($url->type == 'user'){
return redirect ($url->url.'/'.$email);
}else{
return redirect ($url->url);
}