首页 > 解决方案 > 有没有更好的方法来检查用户是否点击了收件箱中的链接(Laravel url $param to controller)

问题描述

我想知道我的潜在客户是否点击了发送到他电子邮件的链接。

所以我做了这个:

我的路线:

Route::get('/audit/{email}/{from?}', 'ProspectPageController@show');

这条路线使这个链接:mysite.com/audit/jhon@mail.com/inbox

我会将这个链接发送到 Prospect 的电子邮件,如果他点击它,我的专栏就会更新。

我的控制器:

public function show($email, $stats = null)
{
     if($stats == 'inbox'){
        $prospected= Prospect::where('email', $email)->first();
        $prospected->stats = '1';
        $prospected->save();
     }
    $prospect= Prospect::where('email', $email)->first();
    return view('prospect.show')->with('prospect', $prospect);

}

我认为这不是一个好方法,有没有更好的方法来做到这一点?

我可以改进这个功能吗?

标签: phplaravellaravel-5.7

解决方案


首先为每封邮件生成唯一的令牌并保存在表中,然后发送带有令牌的链接:

例子

token is : 123-456-789

链接是

mysite.com/audit?token=123-456-789

在控制器中,您可以使用令牌进行检查,如果在表中存储令牌和用户 ID,您也可以使用用户进行验证。我的英语不是很好。我希望你undersatnd回答。


推荐阅读