为什么这个图像跟踪器无法正常工作? Laravel

时间:2016-04-26 01:55:40

标签: php laravel

我在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);

两者都没有显示图像文件。我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

<强>解决

问题在于if / else。删除了额外条件,然后可以访问重定向并正确执行。

现在看起来像这样;

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